home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / bbs_soft / jdrbbs08.zip / DOCS_ETC.ZIP / DOCS_2.DOC < prev    next >
Text File  |  1993-04-06  |  169KB  |  3,053 lines

  1.  
  2.                                   JDR_BBS .08
  3.                                       by
  4.                                   John Rohner
  5.  
  6.  
  7.  
  8.  
  9. CONTENTS        Line  Topic
  10.                 ────  ───────────────────────────────────────────────────────
  11.                   74  CUSTOMIZING 201
  12.                  110  ANSI'S
  13.                  272    ANSI Codes
  14.                  372  LINES.TXT
  15.                  437  SHORT.TXT
  16.                  469  BLOCKS.TXT
  17.                  497  SECURITY LEVELS
  18.                  534    Ghosting
  19.                  578  SYSOPS
  20.                  590  FILE AREAS
  21.                  732    Menus
  22.                  813    Diagrammed File Options
  23.                  911    Files In Area
  24.                  925    Misc.
  25.                  971  MESSAGE AREAS
  26.                 1035    Menus
  27.                 1047  PEER REVIEW
  28.                 1096  WAITING FOR CALLER SCREEN
  29.                 1185  SENDTT
  30.                 1222  DATABASER
  31.                 1233    BLOCKS.TXT DataBaser Structure
  32.                 1405    Calling Via Menus
  33.                 1416    Modifying
  34.                 1419    Deleting
  35.                 1438    More
  36.                 1604  DIRECTRY'S
  37.                 1706  USER HELP
  38.                 1722  THE "WHO'S ON" STATUS LINE
  39.                 1759  VOTING
  40.                 1839  PSEUDO-AI
  41.                 1851  ACCOUNT VALUE
  42.                 1872  LIFE & DEATH DELETE
  43.                 1907  FILE MANAGEMENT
  44.                 1927  DOORS
  45.                 1934    Defining
  46.                 2030    Calling
  47.                 2112    Executing
  48.                 2181    Time Maintenance
  49.                 2216    Misc.
  50.                 2237  PROTOCOLS
  51.                 2393  EVENTS
  52.                 2406  NETMAIL AND ECHOMAIL
  53.                 2409    Overview
  54.                 2470    NetMail
  55.                 2492    EchoMail
  56.                 2560    FidoNet
  57.                 2588    Hubs
  58.                 2617    Costs
  59.                 2635    Misc.
  60.                 2670    Commands
  61.                 2725    Not Ready
  62.                 2744  MULTI-NODE/MULTITASKING OPERATIONS
  63.                 2788  INTERNAL NETS
  64.                 2824  FILE CORRUPTION
  65.                 2852  TROUBLE-SHOOTING
  66.                 2893  PERFORMANCE ENHANCEMENTS
  67.                 2959  REGISTERED PACKAGE
  68.                 2972    DataBaser
  69.                 2974    Net Mail File Transfers
  70.                 2988    Sysops Package
  71.                 3051  NEXT
  72.  
  73.  
  74. CUSTOMIZING     When designing your BBS, there are three things you primarily 
  75. 201             change: the menus (commands), the ANSI's, and the text. 
  76.  
  77.                 You use McEditor to change the menu commands.  Designing your 
  78.                 own commands or just moving around what is there. 
  79.  
  80.                 You  use  TheDraw,  or some other ANSI drawing  program,   to 
  81.                 design your ANSI's.   Your ANSI's are the primary "look" of a 
  82.                 BBS. 
  83.  
  84.                 You  use  LINES.TXT (and to a lesser  extent  BLOCKS.TXT  and 
  85.                 SHORT.TXT)   to change the text that is displayed.   You have 
  86.                 complete control over all text.  The words you choose provide 
  87.                 the "feel" of a BBS. 
  88.  
  89.                 To  change the text to a foreign language,  change BLOCKS.TXT 
  90.                 and LINES.TXT.  Then upload a copy to me,  and I will include 
  91.                 it  in  the next release.   For real language conversion, you 
  92.                 should  also convert your ANSI's.   Just dump all  the  files 
  93.                 into, say, NODE.002.  This means that you must have language-
  94.                 dependent  phone  lines,   in  a future release  I'll  add  a 
  95.                 language menu to let users select between node's. 
  96.                 
  97.                 I strongly recommend that you do not change the sysop menu or 
  98.                 its  ANSI's.   The sysop menu (and its sub-menus) is actually 
  99.                 its own system--with the bottom 6 lines being a "window"  for 
  100.                 routines to use.   These menus will probably change with each 
  101.                 release. 
  102.                 
  103.                 The  single key to turn the BBS "on"  is to change  the  comm 
  104.                 port in "Change Settings",  to something besides zero (like 1 
  105.                 for COM1:).  Answer "N" to the "Null port?"   question.   You 
  106.                 will need to already have the fossil installed and defined in 
  107.                 your CONFIG.SYS. 
  108.                 
  109.  
  110. ANSI'S          All  ANSI  files may contain special "smart  codes".    These 
  111.                 codes,  when encountered,  will be replaced by something (see 
  112.                 below). 
  113.  
  114.                 Smart codes take the form: xx<<yy, xx>>yy, xx><yy
  115.  
  116.                 Where "xx" is a number from 1 to whatever.
  117.                 Where "yy" is a number from 0 to whatever.
  118.                 Where "<<"  means that the text corresponding to "xx"  should 
  119.                 be left justified in a space of "yy" characters. 
  120.                 Where ">>"  means that the text corresponding to "xx"  should 
  121.                 be right justified in a space of "yy" characters. 
  122.                 Where "><"  means that the text corresponding to "xx"  should 
  123.                 be centered in a space of "yy" characters. 
  124.  
  125.                 A  "yy"  of "0"  means to "use whatever comes  naturally"--no 
  126.                 squeezing if "yy" is too small, no extra spaces to fill up to 
  127.                 "yy". 
  128.  
  129.                 By the way, the "" can be gotten in PC-Write with <alt>K,  I
  130.                 do not know what this is for other text editors.
  131.  
  132.                 Below is a listing of what the various "xx" numbers produce:
  133.                 
  134.                     1  User's full name/company name.  Name cased.
  135.                     2  User's password/verification.
  136.                     3  User's city & state/location.  Name cased.
  137.                     4  User's home/voice phone number.
  138.                     5  User's BBS/data phone number.
  139.                     6  User's birth date.  dd-mmm-yy.
  140.                     7  User's show security level value.
  141.                     8  User's date they first called.  dd-mmm-yy.
  142.                     9  User's selected file transfer protocol.  1 character.
  143.                    10  User's subscription start date.  dd-mmm-yy.
  144.                    11  User's subscription end date.  dd-mmm-yy.
  145.                    12  User's subscription type.  1 character.
  146.                    13  User's available/unused monies sent.
  147.                    14  User's total monies ever sent.
  148.                    15  User's date of last call.  dd-mmm-yy.
  149.                    16  User's logons until must change their password.
  150.                    17  User's date of last changing a L&D value.  dd-mmm-yy.
  151.                    18  User's first name.  Name cased.
  152.                    19  User's attempts to chat.
  153.                    20  User's total number of logons/calls.
  154.                    21  User's available minute-credits/extra download time.
  155.                    22  User's hack attempts on name since last call.
  156.                    23  User's total public messages posted.
  157.                    24  User's total private messages posted.
  158.                    25  User's total feedback to sysop messages posted.
  159.                    26  User's total NetMail messages posted.
  160.                    27  User's total NetMail messages received.
  161.                    28  User's download minutes used today.
  162.                    29  User's total number of files downloaded.
  163.                    30  User's total number of bytes downloaded.
  164.                    31  User's total number of minutes spent downloading.
  165.                    32  User's total number of failed/bad download attempts.
  166.                    33  User's total number of files uploaded.
  167.                    34  User's total number of bytes uploaded.
  168.                    35  User's total number of minutes spent uploading.
  169.                    36  User's total number of failed/bad upload attempts.
  170.                    37  User's total number of doors accessed.
  171.                    38  User's Sysop-Note field.
  172.                    39  User's User-Note field.
  173.                    40  User's total messages ever posted.
  174.                    41  User's total minutes allowed downloading per day.
  175.                    42  User's total minutes allowed downloading left today.
  176.                    43  User's elapsed time of the current logon/call.
  177.                    44  User's age in years (goes by birth date field).
  178.                    45  User's current connection baud rate/connection type.
  179.  
  180.                    97  BBS's phone number.
  181.                    98  Sysop's full name.  Name cased.
  182.                    99  Sysop's first name.  Name cased.
  183.  
  184.                   101  Current message area's title.
  185.                   102  Current message area's message-op.
  186.                   103  Current message area's minimum post SL value.
  187.                   104  Current message area's minimum read SL value.
  188.                   105  Current message area's minimum scan SL value.
  189.                   106  Current message area's message-op's first name.
  190.  
  191.                   201  Current file area's title.
  192.                   202  Current file area's file-op.
  193.                   203  Current file area's minimum upload SL value.
  194.                   204  Current file area's minimum download SL value.
  195.                   205  Current file area's minimum scan SL value.
  196.                   206  Current file area's file-op's first name.
  197.  
  198. │                1001 to 1051  User counts for each of the 50 states.
  199. │                1100 to 1149  Top users ranked by DL bytes.  Name cased.
  200. │                1150 to 1199  DL byte numbers for them.
  201. │                1200 to 1249  Top users ranked by files DL'd.  Name cased.
  202. │                1250 to 1299  Files downloaded numbers for them.
  203. │                1300 to 1349  Top users ranked by UL bytes.  Name cased.
  204. │                1350 to 1399  UL byte numbers for them.
  205. │                1400 to 1449  Top users ranked by files UL'd.  Name cased.
  206. │                1450 to 1499  Files uploaded numbers for them.
  207. │                1500 to 1549  Top users ranked by logons.  Name cased.
  208. │                1550 to 1599  Logon numbers for them.
  209. │                1600 to 1649  Top users ranked by msgs posted.  Name cased.
  210. │                1650 to 1699  Messages posted numbers for them.
  211. │                1700 to 1749  Worst users ranked by DL bytes.  Name cased.
  212. │                1750 to 1799  DL byte numbers for them.
  213. │                1800 to 1849  Worst users ranked by files DL'd.  Name cased.
  214. │                1850 to 1899  Files downloaded numbers for them.
  215. │                1900 to 1949  Worst users ranked by UL bytes.  Name cased.
  216. │                1950 to 1999  UL byte numbers for them.
  217. │                2000 to 2049  Worst users ranked by files UL'd.  Name cased.
  218. │                2050 to 2099  Files uploaded numbers for them.
  219. │                2100 to 2149  Worst users ranked by logons.  Name cased.
  220. │                2150 to 2199  Logon numbers for them.
  221. │                2200 to 2249  Worst users ranked by msgs posted. Name cased.
  222. │                2250 to 2299  Messages posted numbers for them.
  223. │               For  the top/worst users above,  the number of users actually 
  224. │               stored  depends on what you set in Alter Settings.   You  may 
  225. │               set  it for more than 50,  but you can only access up  to  50 
  226. │               names this way. 
  227.  
  228.                 Numbers are displayed with commas.
  229.  
  230.                 You  should not use the "«"  in any ANSI's before you get the 
  231.                 callers  name (all ANSI's before your "LogN" command).   This 
  232.                 character is used  to tell the other computer when to receive 
  233.                 net mail--it may trigger a premature net mail transfer before 
  234.                 your BBS had planned.  That is, if another BBS calls your BBS 
  235.                 looking for net mail, it is looking for this character--since 
  236.                 the BBS sends out this character to tell the calling computer 
  237.                 to  begin a net mail receive.   If it appears in your ANSI's, 
  238.                 it causes trouble.  Once a user logs in, then you can use the 
  239.                 character in any of your ANSI's. 
  240.  
  241.                 Auto-detect of Zmodem or BiModem is done at all menu ANSI's. 
  242.                 
  243.                 For menu ANSI's, the who's-on status line is displayed on the 
  244.                 next line following the ANSI--so it is  not  recommended  you 
  245.                 have menu ANSI's that exceed 23 or so lines. 
  246.  
  247.                 Menu ANSI's make an attempt to "hide"  the cursor by  putting 
  248.                 the cursor somewhere on the screen where it will not be seen.  
  249.                 See SHORT 442  for the command to use for this.   Your ANSI's 
  250.                 may  require a different position or color,  etc.   It  is  a 
  251.                 trick,  and  requires  placing on  a  cursor  position  whose 
  252.                 foreground and background matches that of the cursor.    Hard 
  253.                 to do at the console since the cursor is turned OFF. 
  254.  
  255. │               If the file name has a "???"  it will be expanded to the node 
  256. │               number.  Any other wildcard,  using "?" or "*" will cause one 
  257. │               file of those found to be randomly displayed. 
  258.  
  259. ANSI Codes      ANSI codes are marked by a distinctive ""  as the first two 
  260.                 letters.   The ""  is an ASCII 27,  and the easiest  way  to 
  261.                 create  it  in a text editor it to just copy it from  another 
  262.                 line. 
  263.  
  264.                 Code              Meaning
  265.                 ────────────────  ───────────────────────────────────────────
  266.                 r;cH            Move the cursor to row r and column c.
  267.                 r;cf            Starting from 1 (1,1 = upper-left corner).
  268.                 rH              If c is excluded, then it goes to row r,
  269.                 rf              column 1.
  270.  
  271.                 xA              Move cursor up x lines, or move cursor up 
  272.                 A               one line.
  273.  
  274.                 xB              Move cursor down x lines, or move cursor
  275.                 B               down one line.
  276.  
  277.                 xC              Move cursor right x columns, or move cursor
  278.                 C               right one column.
  279.  
  280.                 xD              Move cursor left x columns, or move cursor
  281.                 D               left one column.
  282.  
  283.                 s               Save cursor position.  Only one is saved,
  284.                                   so you can call this repeatedly and you
  285.                                   will still only get the last cursor 
  286.                                   position you had.
  287.  
  288.                 u               This puts you at the location your last
  289.                                   "s" was when you did it.
  290.  
  291.                 n              Reports current cursor position.  Report is
  292.                                   of the form: "r;cR"
  293.  
  294.                               Erase entire display and move cursor to
  295.                                   1,1.  If a background color (besides black)
  296.                                   is in use then the whole screen will become
  297.                                   that color.  To avoid this, use: ""
  298.  
  299.                               Clear from the current position to the end
  300.                                   of the line.  If a background color
  301.                                   (normally black) is specified, this will
  302.                                   make that area that color.
  303.  
  304.                 v;w;x;y;zm      Where v, w, x, y, z are any of the
  305.                 w;x;y;zm        following:
  306.                 x;y;zm            0   Normal (dull white on black) text.
  307.                 y;zm                  Turns off blinking and backgrounds.
  308.                 zm                1   Bright on.
  309.                                     5   Blink on.
  310.                                     3x  Foreground color (see x below)
  311.                                     4x  Background color (see x below)
  312.                                   Colors (x): 0 = Black
  313.                                               1 = Red
  314.                                               2 = Green
  315.                                               3 = Yellow
  316.                                               4 = Blue
  317.                                               5 = Magenta
  318.                                               6 = Cyan
  319.                                               7 = White
  320.  
  321.                 ABCD  above,  the directional move codes,  will not go beyond 
  322.                 the screen's  borders.   They also do not modify  the  "other 
  323.                 parameter" (be it row or column). 
  324.  
  325.                 "xC"  is particularly useful for efficiency.   It moves the 
  326.                 cursor farther down the line x characters, so, if you wish to 
  327.                 move  5 or more spaces,  or wish to "skip"  5  or more spaces 
  328.                 (such  as when you have background colors on)  then use  this 
  329.                 rather   than  the  spaces  themselves,   since  it  is  less 
  330.                 characters to transmit. 
  331.  
  332.                 The    longest    entry   possible   is    something    like: 
  333.                 "".   Which resets everything (0), turns bright 
  334.                 on (1), turns blink on (5), turns red on (31) and turns black 
  335.                 background  on  (40).   What  does this give us:  bright  red 
  336.                 blinking text on a black background. 
  337.  
  338.                 Standard conventions:  0 first, 1 second, 5 third, foreground 
  339.                 fourth, and background fifth. 
  340.  
  341.                 Most   commands  will  usually  only  have  two   parameters: 
  342.                 "x;ym", where x is 0 or 1 and y is a foreground color.  Use 
  343.                 0  to produce normal (dark) text and 1 to produce highlighted 
  344.                 (bright) text. 
  345.  
  346.                 If the colors do not change, you can just use ""  to turn 
  347.                 bright text on.   However, the reverse is not  true  ("") 
  348.                 since 0 alone resets the colors to white on black. 
  349.  
  350.                 Example:  "Testing"
  351.                 Will produce a bright green "T" and a dark blue "esting".
  352.  
  353.                 Use  of backgrounds is more tricky and requires practice  and 
  354.                 patience.    The  key  thing  to remember:   a   "0"   resets 
  355.                 everything.  So to "undo" a background color,  use a sequence 
  356.                 that starts with ""  (ie. ""). 
  357.  
  358.  
  359. LINES.TXT       This is a standard text file that you may edit using any text 
  360.                 editor.
  361.                 
  362.                 There are only five things to remember  about  the  LINES.TXT 
  363.                 format: 
  364.                 
  365.                     The first four numbers represent a line number.
  366.                     The remaining text is the text to send/display out.
  367.                     The whole line cannot exceed 126 characters in length.
  368.                     Color is done using ANSI codes.
  369.                     Multiple lines can be used. 
  370.  
  371.                 The first  four digits of every line (except those designated 
  372.                 with a "'"  to mark them as a comment, or "\\\\" to mark them 
  373.                 as  a continuation)  is a "line number"--not THE  line number 
  374.                 which it occupies within LINES.TXT, but an assigned number.  
  375.                 
  376.                 Starting with position 5,  the rest of the line (not counting 
  377.                 the CR/LF at the end of each line) is for the text that makes 
  378.                 up that line.   There are two types of text:  starting  text, 
  379.                 and continuing text. 
  380.                 
  381.                 See the SendTT codes about the various ""  options.   The one 
  382.                 to pay attention to: "".   This  tells the software  that the 
  383.                 next  line  should be wrapped to the  end  of  this  one--you 
  384.                 should then put "\\\\"  as  the  first four characters of the 
  385.                 next line. 
  386.  
  387.                 Here are a few useful locations:
  388.  
  389.                      0001    The logo line.
  390.                      0002    BBS name (for doors).
  391.                      0158    Shuttle logon password (if using it).
  392.                      0625    Modem answer string (ATA).
  393.                      0626    Modem initialization string (ATZ).
  394.                      0627    Modem hang up string (ATH0).
  395.                      0628    Modem take phone off-hook string (ATH1).
  396.  
  397.                 0626ATZ is   of   particular   importance.     ATZ   is   the 
  398.                         initialization  string  your  communications  program 
  399.                         sends to the modem upon startup.  ATZ is for the HST-
  400.                         -and  possibly others--but certainly not for  run-of-
  401.                         mill 2400  baud modems.  Consult the manual that came 
  402.                         with  your  modem to decide on what to  use  for  its 
  403.                         initialization.
  404.  
  405.                 The  rest  of  the  lines are "just  text".    When  you  see 
  406.                 something  displayed  that  you  want  to  change--perhaps  a 
  407.                 different  wording--then  search  for  it in  this  file  and 
  408.                 replace it with what you want. 
  409.  
  410.                 When JDR_BBS is run,  it generates an image file and an index 
  411.                 file  of  your  LINES.TXT--and it does not  update  the  file 
  412.                 unless it senses that you have made changes to LINES.TXT. 
  413.  
  414.                 Because  LINES.TXT contains nearly all the text  the  program 
  415.                 uses, it is accessed a lot.  So it should always be the first 
  416.                 file you think of when thinking about using a RAM disk.  When 
  417.                 using multi-nodes,  remember to define files that use the RAM 
  418.                 disk with different names (such as LINES???.$$$ for the image 
  419.                 file). 
  420.  
  421.                 See also: SENDTT, ANSI'S
  422.  
  423.  
  424. SHORT.TXT       The SHORT.TXT file is structured very much like the LINES.TXT 
  425.                 files.  Each line cannot exceed 126 characters, and the first 
  426.                 four characters are a line number. 
  427.  
  428.                 Unlike LINES.TXT,  however,  you cannot wrap text to  another 
  429.                 line.   The entire SHORT.TXT file is loaded into memory (into 
  430.                 the string space). 
  431.  
  432.                 The lines in this file mainly represent "system"  stuff.   Or 
  433.                 "language  independent"  stuff--text and stuff that does  not 
  434.                 require translation to a different language. 
  435.                 
  436.                 Here are a few useful locations:
  437.  
  438.                      0001 to 0039  Words to censor out of descriptions.
  439.                      0040 to 0049  Words to censor out of messages.
  440.                      0050 to 0064  Words to upper case in messages.
  441.                      0070    Entering messages: far background color.
  442.                      0077    Entering messages: message body color.
  443.                      0252    Words which cause chat rejection.
  444.                      0350 to 0359  Words which cause search file rejection.
  445.                      0820    Local call dialing prefix (an AT is added).
  446.                      0839    Long distance dialing prefix (an AT is added).
  447.                      0851 to 0860  <ctrl>Fx defined key menu commands.
  448.  
  449.                 0070,  the far background color is 1;34 (a medium blue)  now.  
  450.                 But most any color works good (including 1;30, a grey).  I do 
  451.                 recommend  you try the different colors (0;30  to 1:37)   and 
  452.                 decide  on  one  to  your  liking--different  colors  produce 
  453.                 very different looks for the message-entering system. 
  454.  
  455.  
  456. BLOCKS.TXT      Blocks  are  lines  of  text that have  the  same  first  two 
  457.                 numbers. 
  458.  
  459.                 Blocks contain various things:  DataBaser definitions,   text 
  460.                 blocks,  "SelM" and "SelF" areas-to-use,  and program blocks.  
  461.                 Usually  anything  over  5  lines is put into  one  of  these 
  462.                 blocks. 
  463.  
  464.                 In .09  I  will be breaking this file up into about 5 smaller 
  465.                 files; each containing the same type of blocks. 
  466.  
  467.                 Here is a couple useful locations:
  468.  
  469.                      07  AI's "go fish" message text.
  470.                      37  "SelM" Net Mail message base selector I have set up.
  471.                      49  Node  address help--you should replace  with  your 
  472.                          node and BBS information. 
  473.                      63  "John's Address" option--change to your own.
  474.                      69  .QWK mail "your BBS is" stuff.
  475.                      78  Text for the terminal program.
  476.                       
  477.                 For text blocks when using the "dBLK" command:  a "" at the 
  478.                 end  of the line  will stop the output of a CR/LF  when  that 
  479.                 line  is displayed (allowing for multiple lines to be merged) 
  480.                 and  the final line does not get a CR/LF after  it  (allowing 
  481.                 the final line to be a question). 
  482.                 
  483.  
  484. SECURITY        The  software will allow you to work with security levels  in 
  485. LEVELS          the  range of -32,767  to +32,767.   Using  negative  values, 
  486.                 however, might not be recognized in some routines. 
  487.                 
  488.                 There  are no "locked in"  security level values.   Users may 
  489.                 have any security level value.   The software will either use 
  490.                 their SL directly ("if SL < x then ...")  or indirectly  ("if 
  491.                 SL is > x and SL is < y then ...").   This allows you to  use 
  492.                 the  security  level system as a "reward"   and  "punishment" 
  493.                 system if you want. 
  494.  
  495.                 I just use a simple six level scale (5,  10, 20, 90, 95, 100) 
  496.                 myself, but you can do what you want. 
  497.  
  498.                 When entering a range of SL's (some options allow this),  you 
  499.                 must use " to " to separate the numbers (eg. "90 to 100"). 
  500.  
  501.                 Important:   When  entering  the security level data  in  the 
  502.                 Security  Levels  database,   you must enter  the  values  in 
  503.                 increasing order (for example,  5, 50, 500--not 5,  20,  10).  
  504.                 So  that  when done,  your first entry  contains  the  lowest 
  505.                 value,  and your last contains the  highest.   The highest is 
  506.                 assumed  to be the sysop level.   The lowest is assumed to be 
  507.                 the new user level. 
  508.  
  509.                 After changing your SL's in the SL's database, you should run 
  510.                 "Update  Stats",  or you will just get nonsense when doing  a 
  511.                 "Stats Display". 
  512.  
  513.                 Do not mess around with the security levels for message  area 
  514.                 001,  Private Mail.  All users need to be able to access this 
  515.                 area,   so your SL's for accessing this area should always be 
  516.                 equal to, or lower, than your lowest defined SL. 
  517.                 
  518.                 SL's (used in commands,  etc.)  do not have to be an SL value 
  519.                 in your SL database. 
  520.                
  521. │Ghosting       Some BBS programs use "user flags" as an enhancement to their 
  522. │               SL  system.   A  user would have to have both the SL and  the 
  523. │               flag(s) to do a command. 
  524. │               I  have  a  system  just as  powerful.    It  is  called  "SL 
  525. │               ghosting". 
  526. │               It  is simple:  you have two security levels;  one that users 
  527. │               see, and one that the program uses. 
  528. │               When at the SL database,  the real security level is referred 
  529. │               to as the "SL value" and the security level the user see's is 
  530. │               referred to as the "show SL". 
  531. │               This allows you to give a user of, say, real SL 4 30  minutes 
  532. │               per  day,  and one of real SL 5 60  minutes per  day,   while 
  533. │               having  both of them think they are level 5 because both SL's 
  534. │               have a "show SL" of "5". 
  535. │               But besides simple user limits, the real use for this is with 
  536. │               menu  commands.    Providing  a way to  separate  your  users 
  537. │               internally without them knowing about it. 
  538.  
  539.                 EXAMPLE
  540.                 ┌───────────────────────────────────────────────────────────┐
  541.                 │Your BBS has the following time guidelines:                │
  542.                 │                                                           │
  543.                 │  Normal user:  60 minute limit per week                   │
  544.                 │  Donated $1 :  70 minute limit per week                   │
  545.                 │  Donated $10: 100 minute limit per week                   │
  546.                 │                                                           │
  547.                 │Then in your SL database:                                  │
  548.                 │                                                           │
  549.                 │   Real SL    Show SL    Free Minutes                      │
  550.                 │     10         10            60                           │
  551.                 │     11         10            70                           │
  552.                 │     12         10           100                           │
  553.                 │                                                           │
  554.                 │Thus you have three different limits, three different SL's,│ 
  555.                 │but the users never know it--they all think they are level │
  556.                 │10.                                                        │
  557.                 └───────────────────────────────────────────────────────────┘
  558.  
  559.  
  560. SYSOPS          For message bases,  file areas, and doors.  The sysop of that 
  561.                 area is the one true sysop in that area--the real sysop being 
  562.                 just another user.
  563.  
  564.                 For most other things, when I say "sysop only", what I really 
  565.                 mean is anyone with a sysop-level security level. 
  566.  
  567.                 Pay  attention to some of the commands,  they offer different 
  568.                 options and displays depending on whether the user is a sysop 
  569.                 or not. 
  570.  
  571.  
  572. FILE AREAS      The following can be set in Configuration in the  File  Areas 
  573.                 database. 
  574.  
  575.                 Path
  576.                   This contains the path to which this file area refers.
  577.  
  578.                 Title
  579.                   Refers  to what the users see when as the title  when  they 
  580.                   list the contents of that directory. 
  581.  
  582.                 Download SL
  583.                   Only when a user has at least that  security  value,   will 
  584.                   they be able to download files from that area. 
  585.  
  586.                 Upload SL
  587.                   Only  when a user has at least that security  value,   will 
  588.                   they be able to upload files to that area. 
  589.  
  590.                 Access SL
  591.                   Only  when a user has at least that security  value,   will 
  592.                   they be able to list the contents of that area. 
  593.  
  594.                 Attributes
  595. │                 The area may have eight attributes: 12345678. 
  596.  
  597.                   "1" is DATE.  Which  means that you wish the file's date to 
  598.                   be shown when listing the contents of the area.   The space 
  599.                   used by the date comes at the expense of the description.  
  600.                   
  601.                   Since file dates are often unreliable,  I  prefer the extra 
  602.                   description  length for the UPLOADS area,  but I do use the 
  603.                   date in the other areas. 
  604.  
  605.                   "2"   is  LOG.    Which means that  you  wish  uploads  and 
  606.                   downloads  to/from this area to show up in the callers  log 
  607.                   file in such a way that all users can see it. 
  608.  
  609.                   "3" is L&D.  Which means that you wish the L&D/Point values 
  610.                   to be shown when listing the contents of the area.  Setting 
  611.                   this  OFF overrides the user's toggle to view the L&D/Point 
  612.                   values. 
  613.  
  614.                   "4"  is UPLD.   Which  means that users may upload to  this 
  615.                   area.   When  not included,   any uploads attempted to this 
  616.                   area go to area number 001 (if possible). 
  617.  
  618.                   "5"  is ORDER.   Normally files are listed in  alphabetical 
  619.                   order (A to Z).   When this is ON,  files will be listed in 
  620.                   order from newest to oldest.  
  621.  
  622.                   Normally  when  you have DATE ON,  the current date of  the 
  623.                   file on your disk is shown.  But when ORDER is ON,  then it 
  624.                   shows the date the file was uploaded instead. 
  625.  
  626. │                 "6" is TRANS.  Which means that files in this area are said 
  627. │                 to  be "transient".   This is for such as floppy or  CD-ROM 
  628. │                 drives--where  you swap in and out disks of  files.    When 
  629. │                 this  is  ON,  auto-deletion of file entries not  found  is 
  630. │                 turned off.  Example: You have two floppies,  each with two 
  631. │                 files.  With this OFF, each time you exchanged floppies the 
  632. │                 system  would automatically delete the file entries of  the 
  633. │                 files on the out floppy.   With this ON,  you can swap  the 
  634. │                 floppies  without having to redo the descriptions each time 
  635. │                 you swap in a new disk (although you do have to do them the 
  636. │                 first time, like any new file).  See the "MLsC" command.
  637.  
  638. │                 "7"  is NOEXT.   Which means that when this is ON,  no file 
  639. │                 name   extensions  (.ZIP/.ARJ/etc.)   will  be   shown   on 
  640. │                 description lines when listing a file areas contents.  This 
  641. │                 saves  4 characters per line,  which can slightly speed  up 
  642. │                 output. 
  643.  
  644. │                 "8" is COUNT.   Which will put the total number of files in 
  645. │                 the area into the top header line when listing the contents 
  646. │                 of the area. 
  647.  
  648.                 Start Time
  649.                 End Time
  650.                   A  user may download,  list,  or upload files to this  area 
  651.                   only  during  the defined hours.   Note that,  starting  an 
  652.                   upload or download inside the valid time, that then extends 
  653.                   outside the allowed time (eg.  downloading a massive  file) 
  654.                   will be allowed. 
  655.  
  656.                 Circular buffer size.
  657.                   If this field contains anything other than zero,  than  the 
  658.                   file  area is said to have a "circular buffer".    Whenever 
  659.                   the  number of files in that area reaches this value,   the 
  660.                   oldest file will be deleted.  Example: if you set it to 50: 
  661.                   if there are 50 files in it, and someone uploads 3 files to 
  662.                   this  area,  then the oldest 3 files will be deleted.    So 
  663.                   there will be 50 files again.  If there were 45 files, then 
  664.                   it would have 48  files--since it  did not reach 50,  there 
  665.                   was no need to delete files.   A  zero value in this  field 
  666.                   means  there are no limits on the number of files that  can 
  667.                   be  active in this area (although you should make sure  the 
  668.                   number does not exceed your "max files in dir" setting--see 
  669.                   SETTINGS). 
  670.  
  671.                   Oldest  file  being  the  one in the area/on  the  BBS  the 
  672.                   longest--not by current file date. 
  673.  
  674.                 File-Op
  675.                   This is  a  name  field,   and contains  the  name  of  the 
  676.                   "overseer" of that file area. 
  677.                   
  678.                   You,  the sysop can do many  file   functions,    including 
  679.                   delete, modifying the descriptions,  etc.  Including a name 
  680.                   here will allow that user  to ALSO do these functions (only 
  681.                   one name allowed).  
  682.  
  683.                   Only  those with "sysop"  security levels,  or the name  in 
  684.                   this file-op field will be able to "work on"  files in this 
  685.                   file area.  Useful for delegating the maintenance of a file 
  686.                   area to a user. 
  687.  
  688.                 High-File-Pointer
  689.                   This is a primarily internal field,  its a storage location 
  690.                   for the highest HiFilePtr the area has seen.  If you choose 
  691.                   to  use the internal menu for switching file areas  (versus 
  692.                   using  an  ANSI)  then those areas with new files  will  be 
  693.                   highlighted for the user. 
  694.  
  695.                 When  you start up the BBS,  it checks to see what files  are 
  696.                 where,  etc.   If  you accidentally  renamed  your  downloads 
  697.                 directory, and did not update this in the File Areas database 
  698.                 (or vice-versa),   then it is possible you  could  find  that 
  699.                 startup  procedure  declared  all  your  files  deleted  (and 
  700.                 recorded  so  in  the log).   Do not panic!    Just  get  the 
  701.                 directory names correct, and restart.  You will find that the 
  702.                 software,   having realized its mistake,  undeletes all  your 
  703.                 file records.  No files are ever actually deleted, it is just 
  704.                 the software doing some accounting for you. 
  705.  
  706.                 Upload-stopping works as follows:
  707.                   
  708.                   If  the current area does not have UPLD,  or the SL for the 
  709.                   area is too high for the user, then we change to area 001. 
  710.                   
  711.                   Then  the  same checks are made,  if the user does not pass 
  712.                   them all, then they are not allowed to upload. 
  713.  
  714. Menus           The software will provide you flexibility to access your file 
  715.                 areas  with  whatever  method  you  want.    These   include: 
  716.                 internally (quick) generated menu, ANSI menu,  and continuous 
  717.                 systems. 
  718.  
  719.                 Internally (quick) generated menus:
  720.                 
  721.                 These  involve  making  use of the "_Bxx"  and  "_all"   some 
  722.                 commands  have.   "SelF _all",  for example,  will give you a 
  723.                 menu  of all file areas you can access.   "SelF  _Bxx"   will 
  724.                 retrieve BLOCKS.TXT block #xx (of the form: xxxyyyzzz...) and 
  725.                 produce a menu of those file areas to which you have access. 
  726.  
  727.                 After the menu,  the "SelF"  command merely switches to  that 
  728.                 file area.   Other commands are "LstF",  "PagF",  and "Upld".  
  729.                 All  work  similarly with the "_all"  and  "_Bxx"   by  first 
  730.                 bringing  up  a  menu and then Listing  (continuous  method), 
  731.                 Listing (paging method), and uploading to, respectively. 
  732.  
  733.                 ANSI menus:
  734.  
  735.                 This involves putting individual commands into an ANSI.  Once 
  736.                 again, the commands are: "SelF", "LstF", "PagF", and "Upld". 
  737.  
  738.                 However,  instead of using the "_Bxx"  or "_all"  extensions.  
  739.                 You use these commands with no extensions (except "SelF")  or 
  740.                 with the "_xxx"  extension (where "xxx"  is a file area,  eg. 
  741.                 001). 
  742.  
  743.                 Additional commands of use are: "PrvF" and "NxtF" 
  744.  
  745.                 Continuous systems:
  746.  
  747.                 These  are extended listing systems.   They  include  "PagQ", 
  748.                 "PagA", and "P&Sx". 
  749.  
  750.                 "PagQ"  will ask you what you want to do.  "PagA"  will cycle 
  751.                 though all the file areas accessible using the paged method. 
  752.  
  753.                 "P&Sx" is the Point & Shoot system. 
  754.  
  755.                 You  can create a continuous system for the continuous method 
  756.                 of listing files as such: 
  757.                     LstF _001 LstF _002 LstF _003 LstF _004
  758.                 This new command would cycle through your 4 file areas.
  759.  
  760.                 A  common  factor  to all the systems is the  batch  download 
  761.                 buffer.    It's  accessed via commands in the  paged  method.  
  762.                 It's  part  of the P&S system.   And you can use "CntB"   and 
  763.                 "AddB" for ANSI menu options. 
  764.                 
  765.                 By  having this wide variety of commands,  you may  put  file 
  766.                 areas any where you want.   You could,  for instance,   shove 
  767.                 them into a bunch, or break them up by topic--each having its 
  768.                 own message area, menu, etc. 
  769.  
  770.                 From "P&Sx"  if you hit "."  you get a "LstF"  of the current 
  771.                 area  and  it will loop through the rest of the  areas  using 
  772.                 "LstF", or until "." is hit again (when it returns to the P&S 
  773.                 screen). While the P&S screen won't show the users areas they 
  774.                 don't  have  access to,  using "."  to get  into  the  "LstF" 
  775.                 version of "P&Sx"  will show those areas,  but say "SL to low 
  776.                 to access". 
  777.  
  778.                 From "LstF" or "PagF" (but not "PagQ" or "PagA") "." will put 
  779.                 you into the P&S system.   The P&S system will not show areas 
  780.                 the user does not have access to. 
  781.  
  782.                 The commands can be thought of as differing ways of doing the 
  783.                 same thing.   For instance,  "PagQ" is one menu command,  but 
  784.                 requires two key strokes to do something.   You could do  the 
  785.                 same with 4 menu commands ("PagA",  "PagN",  "PagF _all", and 
  786.                 "PagS") requiring only one keystroke.   Same thing, different 
  787.                 philosophies  for different sysops.   Similarly,  a  function 
  788.                 like "LstF _all"  is one command,  but you could just as well 
  789.                 create  a  full menu with a bunch of individual  "LstF  _xxx" 
  790.                 commands  (particularly so if you want your own  menu's  look 
  791.                 and feel). 
  792.  
  793.                 See also: MENU COMMANDS: File
  794.  
  795. Diagrammed      "LstF _001 LstF _002 LstF _nnn DReq" menu command:
  796. File Examples                              ┌────────────────┐
  797.                                   ┌────────┴───────┐REQUESTS│
  798.                          ┌────────┴───────┐ AREA n │ request│
  799.                 ┌────────┴───────┐EA 002  │ze desc │ request│
  800.                 │ FILE AREA 001  │ze desc │ze desc │ request│
  801.                 │ file size desc │ze desc │ze desc ├────────┘4
  802.                 │ file size desc │ze desc ├────────┘3
  803.                 │ file size desc ├────────┘2
  804.                 └────────────────┘1
  805.                 The user has to hit [Enter] to move to the next area.   There 
  806.                 is no way to jump out of the areas (hitting [Enter] fast does 
  807.                 it).  Recommended for less than 5 areas, or for when you have 
  808.                 areas you want to force the user to look at.   All areas  are 
  809.                 "attempted at",  but the contents of areas to which users  do 
  810.                 not have access are not shown.  Listing method is continuous.
  811.  
  812.                 "LstF _all" menu command:
  813.                                   ┌────────────────┐
  814.                          ┌────────┴───────┐AREA:   │
  815.                 ┌────────┴───────┐EA 002  │a 001   │
  816.                 │ SELECT AREA:   │ze desc │a 002   │
  817.                 │ A)  area 001   │ze desc │a n     │
  818.                 │ B) *area 002   │ze desc ├────────┘1
  819.                 │ C)  area n     ├────────┘2
  820.                 └────────────────┘1
  821.                 A menu is presented containing all the file areas.  When they 
  822.                 select an area,  they are given the contents listing of  that 
  823.                 area  (continuous method),  and then return back to the menu.  
  824.                 Only  areas  to which the user has access are  shown  in  the 
  825.                 selection menu. 
  826.                 
  827.                 "P&Sx" menu command:
  828.                                            ┌────────────────┐
  829.                                   ┌────────┴───────┐EA 001  │
  830.                          ┌────────┴───────┐ AREA n │le file │
  831.                 ┌────────┴───────┐EA 002  │le file │le file │
  832.                 │ FILE AREA 001  │le file │le file │le file │
  833.                 │ file file file │le file │le file ├────────┘1
  834.                 │ file file file │le file ├────────┘3
  835.                 │ file file file ├────────┘2
  836.                 └────────────────┘1
  837.                 The  user  has a wide selection of commands while at the  P&S 
  838.                 display.   You can move both forward and backward through the 
  839.                 file areas.   Only those file areas to which they have access 
  840.                 do they see. 
  841.                 
  842.                 "SelF _Bxx" menu command:
  843.                 ┌────────────────┐
  844.                 │ SELECT AREA:   │
  845.                 │ A)  area 001   │
  846.                 │ B) *area 005   │
  847.                 │ C)  area x     │
  848.                 └────────────────┘1
  849.                 A menu is presented containing certain file areas (defined in 
  850.                 a  BLOCKS.TXT  block).   When they select an area,   they are 
  851.                 exited from the areas menu.  Only areas to which the user has 
  852.                 access are shown in the selection menu. 
  853.  
  854.                 "PagA" menu command:
  855.                                   ┌────────────────┐
  856.                          ┌────────┴───────┐ AREA n │
  857.                 ┌────────┴───────┐EA 001  │ze desc │
  858.                 │ FILE AREA 001  │ze desc │ze desc │
  859.                 │ file size desc │ze desc │        │
  860.                 │ file size desc │        ├────────┘3
  861.                 │ Option:        ├────────┘2
  862.                 └────────────────┘1
  863.                 Each file area is gone through.  At every 18 file names or at 
  864.                 the  end  of a file area,  a  prompt is displayed.   At  this 
  865.                 prompt  the user the  user  has a wide selection of  commands 
  866.                 including commands to move to any area number.   The  listing 
  867.                 format is the paged method.  This command is exactly the same 
  868.                 as "PagQ" with the user selecting "A" for all areas.
  869.  
  870.                 "PagF _all" menu command:
  871.                                   ┌────────────────┐
  872.                          ┌────────┴───────┐AREA:   │
  873.                 ┌────────┴───────┐EA 002  │a 001   │
  874.                 │ SELECT AREA:   │ze desc │a 002   │
  875.                 │ A)  area 001   │ze desc │a n     │
  876.                 │ B) *area 002   │ze desc ├────────┘1
  877.                 │ C)  area n     ├────────┘2
  878.                 └────────────────┘1
  879.                 A menu is presented containing all the file areas.  When they 
  880.                 select an area,  they are given the contents listing of  that 
  881.                 area (paged method),  and then return back to the menu.  Only 
  882.                 areas to which the user has access are shown in the selection 
  883.                 menu. 
  884.                 
  885.                 Remember  that  at the end of menu commands,  you can  put  a 
  886.                 "DReq" to force the showing of the requests list. 
  887.  
  888.                 The  difference  between a "PagA"  and a "PagF _all"  are  in 
  889.                 scope.   "PagF _all"  is equivalent to a bunch of  individual 
  890.                 "PagF _xxx"'s--so you cannot move between areas like you  can 
  891.                 with "PagA" or "PagQ". 
  892.                 
  893. Files In Area   When  you place files in a download area--either  copying  or 
  894.                 downloading from another BBS--then these files are said to be 
  895.                 "outside  the  software's domain".   That is,   the  software 
  896.                 does not yet know about it.  So, some functions, that require 
  897.                 an active file's filename will not yet "see" the file.
  898.                 
  899.                 However, as soon as they are "seen"--when you or a user lists 
  900.                 the files in a download area--then they are "discovered"  and 
  901.                 given an entry, making them active. 
  902.  
  903.                 When  the software discovers files,  the files are assumed to 
  904.                 be complete,  and just given a blank description (shows up as 
  905.                 "?"). 
  906.                 
  907. │Misc.          The  file  system is optimized for lots of files in  lots  of 
  908. │               directories.   Unless you have a fast computer, lots of files 
  909. │               in  a few directories will be awkward.   The reason for this: 
  910. │               because  when  listing each directory,  the contents of  that 
  911. │               directory are read into memory (from DOS) and then sorted. 
  912. │               Large  collections of files in an area will also use up  more 
  913. │               of  your  RAM,  since appropriately sized arrays need  to  be 
  914. │               maintained. 
  915. │               What the limits are,  are pretty much up to what you perceive 
  916. │               as  too  slow,   or  the conditions under which  the  BBS  is 
  917. │               running. 
  918. │               Hundreds of files per directory are no problem on any system. 
  919. │               Thousands become a problem on slow computers. 
  920. │               To get around the slowness,  use the "show by newest"  toggle 
  921. │               when you want super-large file directories.   You should also 
  922. │               then  make  the  "maximum number of files per  dir"   setting 
  923. │               something  more  reasonable  (but  at least  100)--since  the 
  924. │               software will not have to sort it, so this will change space. 
  925. │               If you REALLY want to screw up the software,  have lots (like 
  926. │               20)  file areas with lots (like 2000+)  files per.   And with 
  927. │               some  areas  to be listed alphabetically and others by  date-
  928. │               uploaded.    In  this case,  you really should  have  a  386.  
  929. │               Because sorting 2000+  files will probably show up as a sharp 
  930. │               delay before each file areas listing otherwise. 
  931. │               Example:  Exec-PC has about 20 areas, by computer type,  with 
  932. │               file counts ranging from 45,000  to a couple of hundred.   He 
  933. │               uses  a list-by-date-uploaded method.  If you have a similar 
  934. │               system,    that  is  what  I  would  recommend.    Using   an 
  935. │               alphabetized list with thousands of files is wasteful. 
  936. │               But Exec-PC is a large pay-per BBS.  Most BBS's specialize in 
  937. │               one type of computer.  These have lots of areas,  by software 
  938. │               topic, with not so many files.  Example: 30 file areas with 1 
  939. │               to  300  files per.   For this,  either alphabetically or  by 
  940. │               newest would do just fine.  It is a sysops preference which--
  941. │               I myself like to see the lists alphabetized and let the users 
  942. │               use  "new  stuff"  or "PagQ with New"  to list just  the  new 
  943. │               files. 
  944.                 
  945.  
  946. MESSAGE AREAS   There are 8 message area attributes: 12345679
  947.  
  948.                 "1"   is ANONymous.   Which means that the FROM:  field  will 
  949.                 contain  "Anonymous"  and nobody (but the sender)  knows  who 
  950.                 left the message. 
  951.  
  952.                 "2"   is  PUBlic/PRIvate.   Public means the messages  posted 
  953.                 there  are  visible by all.   Private means the messages  are 
  954.                 only visible to the sender, receiver, or message-op. 
  955.  
  956.                 When using the  various  message  reading menu commands,  pay 
  957.                 attention to which read private mail,  and which read  public 
  958.                 mail.  They do not read each other's type. 
  959.  
  960.                 "3"  is NET.   Which means that the area should be  inspected 
  961.                 when receiving  or  sending Net Mail packets.    It  is  also 
  962.                 necessary  if you wish to enter a node address when  entering 
  963.                 mail, and seeing the node addresses when reading mail.  If an 
  964.                 area does not have NET, then  no  Net Mail will be put there, 
  965.                 and no messages will be sent out from there.  Also, NET tells 
  966.                 the  software  to  add special "^A"  "kludge"  lines  to  the 
  967.                 message. 
  968.  
  969.                 You can really have only two NET-only areas: private NetMail, 
  970.                 and public NetMail.    With private NetMail,  any private Net 
  971.                 Mail that does not have a matching EchoMail message area will 
  972.                 be put here.  Similarly for public NetMail.  If you have only 
  973.                 one NetMail area,  then both private and public  NetMail goes 
  974.                 there.    No  NET areas?   Then NetMail will be put into  the 
  975.                 private mail area. 
  976.  
  977.                 "4" is LOCK.  Which  means  that the user must be unlocked to 
  978.                 to use the commands Read Mail, Leave Mail, and Scan Mail when 
  979.                 using this message area. 
  980.                 
  981.                 The  message-op  field is extremely important if you wish  to 
  982.                 have locked/limited access to the message base.   As ONLY the 
  983.                 message-op  can lock/unlock users to that message  base--even 
  984.                 the sysop cannot if they are not the message-op.
  985.  
  986.                 The locking system is also known as a conferencing system--in 
  987.                 which you allow or stop users from accessing the message area 
  988.                 without some sort of prior processing.  The user has toggling 
  989.                 to turn ON and OFF message areas,  the message-op has LOCKing 
  990.                 to turn users ON and OFF in message areas. 
  991.                 
  992.                 "5"  is DEL.  Which means that only the message-op can delete 
  993.                 any messages in the area. 
  994.  
  995.                 "6" is ALL.  Which means that all messages are given "ALL" as 
  996.                 their "TO:" field.  This includes replies.  Nobody is allowed 
  997.                 to enter a name in the "TO:" field. 
  998.  
  999.                 "7" is ^A-ON.   Which  means that NetMail "kludge"  lines are 
  1000.                 shown (these  lines begin  with  an  ASCII 1--a little  happy 
  1001.                 face).  This also toggles the showing of EchoMail lines: ---, 
  1002.                 * ORIGIN:, SEEN-BY, and AREA:. 
  1003.  
  1004.                 "9" is ECHO.  Which means the area is an EchoMail area.   NET 
  1005.                 must also be set to on for any ECHO area.  Basically, an ECHO 
  1006.                 flag tells the software to add an AREA: line to each message. 
  1007.  
  1008.                 You may mix-and-match the above attributes.
  1009.  
  1010. Menus           The  message area commands are quite similar to the file area 
  1011.                 commands.   For instance, "SelM"  to select a message area is 
  1012.                 just like its "SelF" brother. 
  1013.  
  1014.                 Most of the other commands, for reading and writing messages, 
  1015.                 are less generalized and usually only offer the non-parameter 
  1016.                 form  (uses the current area)  and the "_xxx"  parameter form 
  1017.                 (switch to area "xxx" first and then do the command). 
  1018.                 
  1019.                 See also: MENU COMMANDS: Message
  1020.  
  1021.  
  1022. PEER REVIEW     Peer Review is a restriction system--to restrict users.
  1023.  
  1024.                 To turn it ON for all new users,  use "User Maintenance"   to 
  1025.                 set bit "0" to ON for #NEWUSER's attributes (you will need to 
  1026.                 do this again if you re-initialize #NEWUSER).   To turn it ON 
  1027.                 for a single user,  set bit "0"  to ON in that  user's record 
  1028.                 with "User Maintenance". 
  1029.  
  1030.                 When reading mail,  when you, the sysop, hit "?", the message 
  1031.                 is  sent  to  a  message file,  and the  user  is  tagged  as 
  1032.                 undergoing  Peer  Review.   Should you hit "?"   for  another 
  1033.                 message from a user undergoing Peer Review, then this message 
  1034.                 is also added to the message file. 
  1035.  
  1036.                 When  users  of a defined security level value  range log on, 
  1037.                 they may vote on these message files.   To lessen the  hassle 
  1038.                 to  those  users in the range,  they are only given one to do 
  1039.                 per logon.  Those already voted on are skipped, and users may 
  1040.                 not  change their vote.   If the user hang's up while in  the 
  1041.                 voting  mode,  their vote is cast as "Don't Care"   for  that 
  1042.                 review. 
  1043.  
  1044.                 At  each logon,  a  user undergoing Peer Review will be given 
  1045.                 the tally so far. 
  1046.  
  1047.                 When the number of positive or negative votes exceeds a value 
  1048.                 you specify,  then that user is said to have passed or failed 
  1049.                 Peer  Review.    They  will be given whatever  SL  value  you 
  1050.                 specified.  A  message will also be sent to them telling them 
  1051.                 they passed or failed. 
  1052.  
  1053.                 When a user passes or fails, that fact is recorded in the log 
  1054.                 for  all to see--so those who care about how the voting  went 
  1055.                 can  find  out.    The complete review  file  is  moved  into 
  1056.                 DEL_MSGS.TXT. 
  1057.  
  1058.                 This system can be useful for limiting beginner users.  It is 
  1059.                 also useful for accounting.   If you double-bytes-off a user, 
  1060.                 and  they  go below their ability to download,   the  process 
  1061.                 discourages "jumping to another account"  and encourages  one 
  1062.                 to repair their account rather than abandon it. 
  1063.  
  1064.                 When  a  user  is undergoing Peer Review:  during  the  login 
  1065.                 process,   if  they do not have any mail waiting,   they  are 
  1066.                 offered a chance to see what the voters see. 
  1067.  
  1068.                 See also: SETTINGS, Ninf
  1069.  
  1070.  
  1071. WAITING FOR     The  Waiting-for-caller  screen  contains  5  "objects"    of 
  1072. CALLER SCREEN   information:  drive/mem stats, help/sysop info, modem status, 
  1073.                 BBS status, and callers log. 
  1074.  
  1075.                 The  drive  stats section,  upper left corner of the  screen, 
  1076.                 shows   the  available  memory  on  drives  you  have  deemed 
  1077.                 important  enough to show this (in "Change Settings").    You 
  1078.                 can  hit <F5>  to show some memory information instead.   The 
  1079.                 memory  info is:  amount of RAM the BBS "see's",   amount  of 
  1080.                 internal string space and  the amount of internal stack space 
  1081.                 the software has. 
  1082.  
  1083. │               The help section, upper right corner of the screen, shows the 
  1084. │               various  keys you may select at various times.   You may page 
  1085. │               these screens with the "+"  and "-" keys.  Hitting <F7>  will 
  1086. │               lock down (until a full exit is done) two stats windows:  one 
  1087. │               shows  messages and files new to the sysop,  the other  shows 
  1088. │               when  the next event is scheduled for and when was  the  last 
  1089. │               time the software checked to do events. 
  1090.  
  1091.                 The callers log,  bottom half of the screen,  shows the  last 
  1092.                 few  callers  log entries.   You may scroll  this  using  the 
  1093.                 up and down arrow keys.
  1094.  
  1095.                 The  lines  in  the middle of the screen gives  the  time the 
  1096.                 waiting-for-caller was started (time last user logged out, or 
  1097.                 last  event finished).   It also tells how much time is  left 
  1098.                 before it resets the modem,  and shows you a counter to  that 
  1099.                 time. 
  1100.  
  1101.                 The 6 "buttons" are "CTS", "DSR", "DCD", "Trap", "Chat",  and 
  1102.                 chat availability. 
  1103.  
  1104.                 "Trap"  and "Chat" are ON (pushed in)  when you have trap-all 
  1105.                 or chat trapping ON. 
  1106.  
  1107.                 "CTS",  and perhaps "DSR", are usually ON or OFF depending on 
  1108.                 your modem.   Usually when a call is received the "DSR"  will 
  1109.                 go ON and then the "DCD" will go ON.
  1110.  
  1111.                 The  final button is the chat availability toggle.   This  is 
  1112.                 turned ON/OFF with F3  when at the waiting-for-caller  screen 
  1113.                 or  when  a  user is on-line (a music symbol appears  in  the 
  1114.                 status line when ON).  When this toggle is OFF, the user will 
  1115.                 not be able to try to chat with you.  The symbols, "══" for 
  1116.                 ON,  and "═─"  for OFF,  breakdown as so:  the left face is 
  1117.                 that  of  the caller,  the right face is that of  the  sysop, 
  1118.                 there is a line of communication between the ears and mouths, 
  1119.                 when you have  your end turned OFF then you cannot hear  what 
  1120.                 the user is  saying,  but still can say something to the user 
  1121.                 anytime you want (that is, the user cannot call you via chat, 
  1122.                 but you can still jump into chat if you want to talk to him). 
  1123.  
  1124.                 When the phone rings, a "[RING]" appears in the middle of the 
  1125.                 screen. 
  1126.  
  1127.                 After a carrier is detected, the string received by the modem 
  1128.                 is displayed as it is received.  A "│" marks a CR/LF.
  1129.                 
  1130.                 After  the phone rings,  the software will start  its  "logo" 
  1131.                 timeout  countdown  (I have it for one minute now).    If  no 
  1132.                 carrier is found at that time, the phone is hung up. 
  1133.  
  1134.                 When  a carrier is found,  the clock will stop ticking.   The 
  1135.                 "logo" time-out is reset, and starts (internally) again.  The 
  1136.                 string received by the modem is displayed as it is  received.  
  1137.                 
  1138.                 Usually it will take a  couple  of  seconds  until connection 
  1139.                 speed  is determined.  However, it could last the full "logo" 
  1140.                 time-out time if the connection was one you had not specified 
  1141.                 in your CONNECT strings database (for instance,  this  occurs 
  1142.                 with 1200 baud  callers when you do not want them).   This is 
  1143.                 because,   for baud rates you do not want,  the system merely 
  1144.                 waits for that caller to hang up, or for them to time-out. 
  1145.  
  1146.                 You  will not be able to use any keys from the console during 
  1147.                 this period. 
  1148.  
  1149.                 Entries are recorded for "bad connects".   They  are  of  the 
  1150.                 form:   "Non user called at <time>.   Connect:  |...|".   The 
  1151.                 "|...|"   is the crucial information.   It will tell you  the 
  1152.                 exact string the software received from your modem.   A   bad 
  1153.                 connection may contain just garbage,  a 1200 connection would 
  1154.                 look  like "| 1200<garbage>|"  usually.   If you  forgot  any 
  1155.                 CONNECT strings, this will tell you the information you need. 
  1156.  
  1157.                 See also: SETTINGS, CONSOLE KEYS
  1158.  
  1159.  
  1160. SENDTT          When ever the software uses its own text--that is, text users 
  1161.                 do not enter--it  searches  for  certain  control information 
  1162.                 within the text: 
  1163.  
  1164.                 !    will insert the sysop's first name.
  1165.                 ?    will insert the user's first name.
  1166.                 >    to output a CR/LF.
  1167.                 +    to turn pause-allowed mode on ([Space] pauses text).
  1168.                 *    for a 1 second pause.
  1169.                 -xx  to produce "┌───┐" of length xx (must be two numbers).
  1170.                 ||   (eg. |12Q~|) this sets up a list of stop-and-exit keys 
  1171.                       for  that  line  of text that the user can  hit.    For 
  1172.                       [Enter] (an ASCII 13), use a "~" character.  Not really 
  1173.                       something  useful  to you,  as there  must  be  program 
  1174.                       coding to make use of any keys hit. 
  1175.                 @@   (eg.   @E:\4THJULY.ANS@)  will output the file between 
  1176.                       the  two @'s.   This is useful for really long text  or 
  1177.                       ANSI strings.   Can be used to add long special effects 
  1178.                       to menu  responses.    No  key  checking--such  as  for 
  1179.                       cancellation  of output--is done during the display  of 
  1180.                       the  file.  You can use wildcard's to select  a  random 
  1181.                       file from among whichever number match.
  1182.                 τ    Will display your header line (LINES.TXT line 001).
  1183.                 _xx  to  produce "▄▄▄▄▄"  of length xx (must be two numbers) 
  1184.                       two lines below the current line. 
  1185.  
  1186.                 These  are codes for internal use only (either in  BLOCKS.TXT 
  1187.                 or LINES.TXT).  These could not,  for example, be put into an 
  1188.                 ANSI file (such as menus) and expected to expand out. 
  1189.  
  1190.                 They   are  filtered  for  (stripped  out)   incoming   text, 
  1191.                 imported, uploaded, and net messages. 
  1192.  
  1193.                 The LINES.TXT file has another special code:   which is not 
  1194.                 a formatting code but a "there is another line" code. 
  1195.  
  1196.  
  1197. DATABASER       The DataBaser system is a sysop-designed data base system.
  1198.  
  1199.                 All  DataBaser  databases rely on BLOCKS.TXT  to  define  and 
  1200.                 "DBEd" or "DBVw" menu commands to implement--making them free 
  1201.                 of the hardwired code. 
  1202.  
  1203.                 However,   I  do use the DataBaser system for some of my  own 
  1204.                 internal databases (Message Bases, Sysops, Doors, etc.) which 
  1205.                 may have some specific coding.   Either way,  for my internal 
  1206.                 databases, you should not change the entries in BLOCKS.TXT. 
  1207.                 
  1208. BLOCKS.TXT      Each  DataBaser definition has a format along  the  following 
  1209. DataBaser       lines: 
  1210. Structure         Line   1: Descriptive text about the database.  Appears
  1211.                    ...      when the menu command is called.
  1212.                   Line   n: <end>
  1213.                   Line n+1: database's file name.
  1214.                   Line n+2: database's definition specs.
  1215.                   Line n+3: Question line to use when modifying.
  1216.                   Line n+4: The object name of the record type (subject of
  1217.                             the database).
  1218.                   Line n+5: Heading output text.  Appears at top of listing.
  1219.                    ...
  1220.                   Line   n: <end>
  1221.                   Line n+1: Body output specs.
  1222.                    ...
  1223.                   Line   n: <end>
  1224.                   Line n+1 to end: text describing each field.
  1225.  
  1226.                 Example:
  1227.                   50Fuzzy Bear's data base of warez.
  1228.                   50
  1229.                   50<end>
  1230.                   50C:\BBS\GLOBAL\SYSTEM\FUZZY.DAT
  1231.                   50S12S40U
  1232.                   50record number :  
  1233.                   50warez
  1234.                   50               --------  Fuzzy'z Warez Data Baze -------->
  1235.                   50 Rec ==File Name== ===============Description============== ========User=======>>
  1236.                   50<end>
  1237.                   50<04 <13 <40 <19~
  1238.                   50<end>
  1239.                   50File name
  1240.                   50Description
  1241.                   50User name
  1242.  
  1243.                 The "50" means this is block number 50  in BLOCKS.TXT (and it 
  1244.                 comes only after block 49 and before block 51). 
  1245.  
  1246.                   50Fuzzy Bear's data base of warez.
  1247.                   50
  1248.                   50<end>
  1249.            
  1250.                 Is our description text.  It can be any number of lines,  but 
  1251.                 must  be at least two lines,  and the last line must  contain 
  1252.                 only  "<end>".   It may contain SendTT formatting codes.    A 
  1253.                 CR/LF is assumed after each line. 
  1254.                 
  1255.                 When this database is called, it will clear the screen, print 
  1256.                 the BBS heading,  print "Fuzzy Bear's data base of warez." in 
  1257.                 dark green letters,  skip a line,  then ask the "List,   Add, 
  1258.                 Modify, Delete, Insert, or [Enter] to quit" question. 
  1259.                 
  1260.                   50C:\BBS\GLOBAL\SYSTEM\FUZZY.DAT
  1261.  
  1262.                 This  is the file name in which we store our database.    You 
  1263.                 can specify any pathname you want. 
  1264.  
  1265.                   50S12S40U
  1266.  
  1267.                 This is the database's definition specs.   The following  are 
  1268.                 currently allowed: 
  1269.  
  1270.                   A   for an attribute field.  Inputs and displays attributes 
  1271.                       using "1234567890ABCDEF".
  1272.                   F   for file areas.  Input is for a 3 digit number, but 
  1273.                       output contains the number and the title of the area.
  1274.                   I   for an integer number (-32767 to 32767).
  1275.                   L   for a long number (-2,100,000,000 to 2,100,000,000).
  1276.                   M   for message areas.  Input is for a 3 digit number, but 
  1277.                       output contains the number and the title of the area.
  1278.                   N   for a node address (xxxxx:xxxxx/xxxxx).
  1279.                   P   for a U.S. phone number.
  1280.                   Sxx for a string of length xx.  xx must be two digits.
  1281.                       Example: for a string of length 4, use S04.
  1282.                       S02 is special: it is always replaced with a CR/LF.
  1283.                       S64 is special: it is considered to be a pathname, and
  1284.                       will be created if it does not exist and the entry you 
  1285.                       make ends in a "\".
  1286.                   T   for a time field (HH:MM:SS).
  1287.                   U   for a users name.  The auto-name-detect is in effect
  1288.                       so only active BBS users names are allowed.  Use S30 
  1289.                       for non-auto-name-detect name fields.
  1290.                   W   for the seven days of the week (MTWRFSN).  "R" for
  1291.                       thursday and "N" for sunday.
  1292.                   anything else will cause trouble.
  1293.  
  1294.                 Our  example  describes a database of 3 fields:  a   size  12 
  1295.                 string field, a size 40 string field,  and a user name field.  
  1296.                 For  a total record length of 82  characters (user names  are 
  1297.                 limited to 30 characters). 
  1298.  
  1299.                 For those who need to know: A, F, I, M,  T,  and W are stored 
  1300.                 in 2 byte integer form,  L and P are 4 byte long form, U is a 
  1301.                 30  byte string, N is a 6 byte string, and Sxx is a string of 
  1302.                 length xx. 
  1303.  
  1304.                   50record number :  
  1305.  
  1306.                 This  is  the "modify which entry"  question fragment.    For 
  1307.                 adding,  deleting, inserting, etc.  it asks "Modify with ..." 
  1308.                 and appends the above. 
  1309.  
  1310.                   50warez
  1311.  
  1312.                 This describes what we are working with.    It is  used  when 
  1313.                 adding.    In  this example,  after selecting Add,   it  will 
  1314.                 display "Adding a new warez." 
  1315.  
  1316.                   50               --------  Fuzzy'z Warez Data Baze -------->
  1317.                   50 Rec ==File Name== ===============Description============== ========User=======>>
  1318.                   50<end>
  1319.  
  1320.                 Is our header text.  It can be any number of lines,  but must 
  1321.                 be at least two lines,  and the last line must  contain  only 
  1322.                 "<end>".  It may contain SendTT formatting codes.  No CR/LF's 
  1323.                 are added unless you put them in with ">". 
  1324.                 
  1325.                   50<04 <13 <40 <19~
  1326.                   50<end>
  1327.  
  1328.                 This is our output display definition line.   It contains two 
  1329.                 defining elements:   "<xx"  which is the length to  use,  and 
  1330.                 everything in between.  For each definition in our definition 
  1331.                 specs,   there should be a corresponding "<xx".   You  cannot 
  1332.                 not-do a field, but can not-show a field by using "<00".  The 
  1333.                 first  one is for the record number.   Two numeric digits are 
  1334.                 required (for example, not "<9", but rather "<09"). 
  1335.                 
  1336.                 The  example  tells  the software to display a  line  of  the 
  1337.                 database  as so:   Turn bright green on,  display the  record 
  1338.                 number  in a area 4 characters wide,  display a blank  space, 
  1339.                 turn  bright  blue  on,  display the filename in  a  area  13 
  1340.                 characters wide, display a space,  display the description in 
  1341.                 an areas 40  characters wide,  display a space,  display  the 
  1342.                 user's name in an area 19 characters wide. 
  1343.  
  1344.                 We  could  have  used two spaces before  <13   and  used  <12 
  1345.                 instead, or no spaces before and <14 instead--since the field 
  1346.                 is only 12 characters in length, the first two will always be 
  1347.                 spaces. 
  1348.                 
  1349.                 The  <19  truncates our 30  length file name.   Output  lines 
  1350.                 cannot exceed 79  characters (the software  chops off anything 
  1351.                 longer). 
  1352.  
  1353.                 A "~" will be replaced by a CR/LF.
  1354.                  
  1355.                 All  lines  before  the <end>   are  merged  together  before 
  1356.                 handling  is done--so instead of thinking of it as a bunch of 
  1357.                 separate lines, think of it as one line broken up. 
  1358.  
  1359.                 When displaying, the following formats are used:
  1360.                   Time: fixed "00:00 xm" format.
  1361.                   User name, String: left justified.
  1362.                   Integer, Long, Phone number: right justified.
  1363.                   Days of week: MTWRFSN with "off" days getting a space.
  1364.                   Attributes: 1234567890ABCDEF with OFF bits getting a space.
  1365.                   File/Message areas: "xxx title" with title left justified,
  1366.                                       use <xx to limit what you want to see.
  1367.                   Node address: "xxxxx:xxxxx/xxxxx" format.
  1368.                 
  1369.                   50File name
  1370.                   50Description
  1371.                   50User name
  1372.  
  1373.                 These  are  the field names used  when  entering/modifying  a 
  1374.                 record.  Simple names, one for each definition spec. 
  1375.  
  1376.                 When entering a day of the week,  or attributes,  they can be 
  1377.                 in  any  order,   MRF need not be entered as "M R F  ",   for 
  1378.                 example. 
  1379.  
  1380. Calling Via     Calling up a database involves using a "DBEd" or "DBVw"  menu 
  1381. Menus           commands. 
  1382.  
  1383.                 Any  user  with access will be able to do all  the  functions 
  1384.                 (List, Add, Modify, Delete, Insert) with "DBEd". 
  1385.  
  1386.                 You can just list the contents of a database using the "DBVw" 
  1387.                 menu command. 
  1388.  
  1389.                 See also: DBEd, DBVw
  1390.  
  1391. Modifying       When modifying the data, just hit [Enter] at the start of the 
  1392.                 line to not change what is already there.
  1393.                 
  1394. Deleting        When  deleting  message bases,  the MESSAGES  file  (and  the 
  1395.                 messages  themselves)   are not affected.    If  the  deleted 
  1396.                 message  base  has  any  active messages,   then  these  will 
  1397.                 "reappear" the next  time  you create a message base for that 
  1398.                 message base number, or they will be deleted when you next do 
  1399.                 a pack files. 
  1400.  
  1401.                 Remember  to not think of the entries as individual  entries, 
  1402.                 each  entry holds a slot--and when you delete an entry,   all 
  1403.                 entries after it are moved down a slot.  Delete record 4, and 
  1404.                 record 5 is now record 4, record 6 is record 5, etc.
  1405.                 
  1406.                 I strongly recommend that you do not delete stuff--but rather 
  1407.                 modify the entries appropriately.  This reduces confusion. 
  1408.                 
  1409.                 For  records whose placement does not matter,  deleting is no 
  1410.                 problem, but for stuff like doors, where placement means what 
  1411.                 menu command to use, it is extremely important. 
  1412.  
  1413. More            The above may at first seem confusing.   But there are plenty 
  1414.                 of examples.  You will  be using a lot of the already defined 
  1415.                 databases.    Use these to study how to really make what  you 
  1416.                 want. 
  1417.  
  1418.                 When listing, all final lines are trimmed of trailing spaces.  
  1419.                 If  this is something you do not want,  put something like  a 
  1420.                 "" after the spaces. 
  1421.  
  1422.                 If  an  output line was only to output one  field  (not  zero 
  1423.                 fields,   not more than one fields)  and that field is blank, 
  1424.                 then the line will not be outputted.    That is,  if an entry 
  1425.                 uses the full line, and is blank, it will not be shown.  This 
  1426.                 is  useful for large fields (eg.  S64,  S72)  since the extra 
  1427.                 lines these incur when listing makes reading more difficult. 
  1428.  
  1429.                 EXAMPLE
  1430.                 ┌───────────────────────────────────────────────────────────┐
  1431.                 │ Let us create a "news items" database.  In which users    │
  1432.                 │ can add/delete/modify/list entries of news items they     │
  1433.                 │ think other users would be interested in.                 │
  1434.                 │                                                           │
  1435.                 │ Step 1                                                    │
  1436.                 │   Find a location for our DataBaser definition block in   │
  1437.                 │   BLOCKS.TXT.  Usually just use the next one following    │
  1438.                 │   the last block in the file, for example, we will use    │
  1439.                 │   43.                                                     │
  1440.                 │                                                           │
  1441.                 │ Step 2                                                    │
  1442.                 │   Create some informational text for whenever this        │
  1443.                 │   database is used.                                       │
  1444.                 │                                                           │
  1445.                 │   43Important news items you wish all to see.      │
  1446.                 │   43                                                      │
  1447.                 │   43<end>                                                 │
  1448.                 │                                                           │
  1449.                 │   This displays "Important news..." in dark green         │
  1450.                 │   coloring followed by a single blank line.               │
  1451.                 │                                                           │
  1452.                 │ Step 3                                                    │
  1453.                 │   Assign a file name to store our data.                   │
  1454.                 │                                                           │
  1455.                 │   43C:\BBS\GLOBAL\SYSTEM\NEWS.DAT                         │
  1456.                 │                                                           │
  1457.                 │ Step 4                                                    │
  1458.                 │   Define the data structure to use.  We want a more "free │
  1459.                 │   flowing" structure than normal.                         │
  1460.                 │                                                           │
  1461.                 │   43S72S72S72S72                                          │
  1462.                 │                                                           │
  1463.                 │   Which is 4 lines of length 72 (4 string fields of       │
  1464.                 │   length 72).  We could add more (or less) of these, we   │
  1465.                 │   could change their size, etc.  But this provides a good │
  1466.                 │   balance between drive space and entry size (each entry  │
  1467.                 │   will use 4 * 72 bytes of drive space).  Also, it is a   │
  1468.                 │   good size to fool the user into thinking they are not   │
  1469.                 │   entering into a database--as it will look like a text   │
  1470.                 │   file (when we are done).                                │
  1471.                 │                                                           │
  1472.                 │ Step 5                                                    │
  1473.                 │   Now we enter the text for the question when a user      │
  1474.                 │   selects to modify a record.                             │
  1475.                 │                                                           │
  1476.                 │   43news item (1..n top down)?                       │
  1477.                 │                                                           │
  1478.                 │ Step 6                                                    │
  1479.                 │   Identifying the record.  "What it is"  we are adding,   │
  1480.                 │   etc.  This is meant to be a singular noun.              │
  1481.                 │                                                           │
  1482.                 │    43news item                                            │
  1483.                 │                                                           │
  1484.                 │ Step 7                                                    │
  1485.                 │   Create a heading.                                       │
  1486.                 │                                                           │
  1487.                 │   4326                            News items of    │
  1488.                 │   43 interest.>>                                        │
  1489.                 │   43<end>                                                 │
  1490.                 │                                                           │
  1491.                 │   We output "News items of interest.<ret><ret>" in bright │
  1492.                 │   green for our heading.                                  │
  1493.                 │                                                           │
  1494.                 │ Step 8                                                    │
  1495.                 │   Design the record display line.  Here is where we take  │
  1496.                 │   advantage of some of the DataBaser system's qualities.  │
  1497.                 │                                                           │
  1498.                 │   43<00    <72~    <72~    <72~    <72~                   │
  1499.                 │   43<end>                                                 │
  1500.                 │                                                           │
  1501.                 │   We use "    <72~" to print out each of the record lines │
  1502.                 │   with 4 spaces in front and a CR/LF afterwards.  If the  │
  1503.                 │   line/field is blank, then DataBaser will not output it, │
  1504.                 │   because it does not output lines with only one field,   │
  1505.                 │   and with that field blank.  The "<00" says to not       │
  1506.                 │   output the record number (actually, it says "output the │
  1507.                 │   record number into a field of size 0).  The last "~"    │
  1508.                 │   will result in an extra CR/LF between the outputted     │
  1509.                 │   records.                                                │
  1510.                 │                                                           │
  1511.                 │   So, now when we list, it will list all entries,         │
  1512.                 │   separated by a blank line.  It will only list as many   │
  1513.                 │   lines per entry as contain data.  Example: an entry     │
  1514.                 │   with 2 lines of text shows only 2 lines, etc.  Not a    │
  1515.                 │   steady 4 lines per output record, even though the       │
  1516.                 │   record can work with up 4 lines--by stopping output of  │
  1517.                 │   "blank" lines, the actual number of displayed lines     │
  1518.                 │   will vary with the number of fields witch actually      │
  1519.                 │   contain data.                                           │
  1520.                 │                                                           │
  1521.                 │   43}7<02  <72~    <72~    <72~    <72~          │
  1522.                 │   43<end>                                                 │
  1523.                 │                                                           │
  1524.                 │   Could be used to display the item number as well.       │
  1525.                 │   Above the items appear in the default dark white color, │
  1526.                 │   here we turn on dark blue for the number, and dark      │
  1527.                 │   white back on for the text.                             │
  1528.                 │                                                           │
  1529.                 │   Remember, this entry does not define how each line of a │
  1530.                 │   record is to be displayed, but rather how the whole     │
  1531.                 │   record is to be displayed.                              │
  1532.                 │                                                           │
  1533.                 │   43<00|o| <72|o|~|o| <72|o|~|o| <72|o|~|o| <72|o|        │
  1534.                 │   43                                 <*-+-*>              │
  1535.                 │   43                                 |o|                  │
  1536.                 │   43<end>                                                 │
  1537.                 │                                                           │
  1538.                 │   This is another example.  This displays each item in a  │
  1539.                 │   "paper feeder" like format.  With a short design as a   │
  1540.                 │   separator.  Remember that the lines are all linked      │
  1541.                 │   together to form a single string.                       │
  1542.                 │                                                           │
  1543.                 │ Step 9                                                    │
  1544.                 │   Because we have defined four fields (S72 * 4) we must   │
  1545.                 │   now give each a name (for when we add/modify the        │
  1546.                 │   entry).                                                 │
  1547.                 │                                                           │
  1548.                 │   43Item                                                  │
  1549.                 │   43Item                                                  │
  1550.                 │   43Item                                                  │
  1551.                 │   43Item                                                  │
  1552.                 │                                                           │
  1553.                 │   When adding/modifying an entry, we will be adding to 4  │
  1554.                 │   fields with the same name.  But because the whole       │
  1555.                 │   record is considered a single news item, this is quite  │
  1556.                 │   appropriate.                                            │
  1557.                 │                                                           │
  1558.                 │ Finally                                                   │
  1559.                 │   We have completed a new database.  Now we just give it  │
  1560.                 │   an entry on a menu's ANSI, and a matching entry in      │
  1561.                 │   McEditor with the command "DBEd _B43".  Review the menu │
  1562.                 │   system for help with this procedure.                    │
  1563.                 │                                                           │
  1564.                 │ NOTE                                                      │
  1565.                 │   While this database was designed to let users add       │
  1566.                 │   entries, you can utilize it as your primary news file   │
  1567.                 │   as well.  Either replace the "Dnws" with a "DBVw" or    │
  1568.                 │   add a "DBVw" command before or after "Dnws".  Then when │
  1569.                 │   users log on, they will get a listing of your news      │
  1570.                 │   DataBaser contents.                                     │
  1571.                 │                                                           │
  1572.                 │   One drawback with this database--any user can modify    │
  1573.                 │   any other user's news item.  Well, it might actually be │
  1574.                 │   useful here, but it would be disastrous if this were,   │
  1575.                 │   say, a Buy/Sell/Swap database.                          │
  1576.                 └───────────────────────────────────────────────────────────┘
  1577.                 
  1578.  
  1579. DIRECTRY'S      Directry's  are  collections of information  stuck  into  one 
  1580.                 file. 
  1581.  
  1582.                 There  are  three  files for  each  directry:   DIRECTRY.Dxx, 
  1583.                 DIRECTRY.Txx,    and  DIRECTRY.Ixx.    The  software  creates 
  1584.                 DIRECTRY.Ixx. 
  1585.  
  1586.                 DIRECTRY.Dxx  contains the information.   This file can  have 
  1587.                 three formats: 
  1588.  
  1589.                   LINE files consist of:  LINE
  1590.                                           HEADER/NOHEADER
  1591.                                           %%%
  1592.                                           text line 1
  1593.                                           text line 2
  1594.                                           text line 3
  1595.                                           . . .
  1596.                                           text line n
  1597.                   Use LINE formatted files for when the information uses only 
  1598.                   one line.   Lines should not exceed 126 characters.
  1599.  
  1600.                   BLOCK files consist of:  BLOCK
  1601.                                            HEADER/NOHEADER
  1602.                                            %%%
  1603.                                            text line 1
  1604.                                            . . .
  1605.                                            text line n
  1606.                                            %%%
  1607.                                            text line 1
  1608.                                            etc.
  1609.                   Use  BLOCK  formatted files for when the  information  uses 
  1610.                   multiple lines.  Lines should not exceed 126 characters.
  1611.  
  1612.                   LENGTH files consist of:  LENGTH
  1613.                                             HEADER/NOHEADER
  1614.                                             %%%
  1615.                                             size
  1616.                                             text of size bytes
  1617.                                             %%%
  1618.                                             size
  1619.                                             etc.
  1620.                   Use  LENGTH formatted files for when the information  is of 
  1621.                   text  either not having CR/LF's or that with lines of  more 
  1622.                   than  126  characters in length.   There is no limit on the 
  1623.                   size of the text. 
  1624.  
  1625.                 The key information to remember:  The first line contains the 
  1626.                 information type (LINE,  BLOCK, or LENGTH).   The second line 
  1627.                 contains  whether  the screen should be cleared and the  logo 
  1628.                 (LINES.TXT line 001) displayed (HEADER/NOHEADER).   The third 
  1629.                 line  is our  first "separator  line"  and consists of "%%%".  
  1630.                 From  then  on  we  alternate between information  and  "%%%" 
  1631.                 lines. 
  1632.  
  1633.                 DIRECTRY.Txx files are of the form:
  1634.  
  1635.                   First line: Line of text that makes up the heading.
  1636.                   2nd line: Text of the question to ask.
  1637.                   n lines: n lines of titles for each information element in 
  1638.                            the DIRECTRY.Dxx file. 
  1639.  
  1640.                   Lines should not exceed 126 characters in length.  The size 
  1641.                   of the longest title determines how many titles are put  on 
  1642.                   each line for the selection menu.
  1643.  
  1644.                 xx corresponds to a value of 01  to 99.   Directry files need 
  1645.                 not be in sequential order:  5, 19, 37, 88 or 1, 2, 3, 4  are 
  1646.                 OK. 
  1647.  
  1648.                 See  the menu commands for information on setting it up in  a 
  1649.                 menu. 
  1650.  
  1651.                 For LENGTH files,  the only real way to determine the lengths 
  1652.                 is by trial and error.   But file lengths are usually correct 
  1653.                 (the length of the text when it is in its own file). 
  1654.  
  1655.                 For title (.Txx)  files,  using a max title width of 20  will 
  1656.                 get you 3 entries per line. 
  1657.  
  1658.                 When  called,   the  list  of titles will  be  displayed,   a 
  1659.                 selection  made,   and the information corresponding to  that 
  1660.                 selection/title will be shown. 
  1661.  
  1662.                 The  whole  system  is designed for you  to  create  whatever 
  1663.                 DIRECTRY's  you want--up to 99  of them.   I   have  included 
  1664.                 samples of each type. 
  1665.  
  1666.                 Use  HEADER  if  you  want the BBS logo  header  line  to  be 
  1667.                 displayed over each data item.   Use NOHEADER if  you  do not 
  1668.                 want  anything displayed over the data item (usually  implies 
  1669.                 the data item will handle it).   Anything else besides HEADER 
  1670.                 or NOHEADER will be displayed over the data item. 
  1671.  
  1672.                 You can use SendTT ("") codes in the data text.
  1673.  
  1674.                 Just  use  a text editor to create/modify the .Txx  and  .Dxx 
  1675.                 files,   then  just  restart  the  BBS--the  .Ixx  files  are 
  1676.                 built/updated automatically. 
  1677.  
  1678.                 See also: DirV, SendTT
  1679.  
  1680.  
  1681. USER HELP       My setup is designed to give users help by files.    Such  as 
  1682.                 the BBS Information file and the Additional Information file. 
  1683.  
  1684.                 However, another method is available: using a BLOCK Directry. 
  1685.                 In which each block represents a different topic.   I have no 
  1686.                 example set up--but it is similar  to the Unprotect Directry.  
  1687.                 It is a way of putting all your information  into one  place, 
  1688.                 including  information  about you,  the system,  your  rules, 
  1689.                 uploading/downloading,   help  using  the  BBS,   etc.    For 
  1690.                 instance,   this would be an exact alternative to using a lot 
  1691.                 of messages to give this information. 
  1692.  
  1693.                 Indeed,   a  Directry labeled:  "Frequently Asked  Questions" 
  1694.                 would probably be useful. 
  1695.  
  1696.  
  1697. THE "WHO'S ON"  Below  each  menu  ANSI,  the console will see a user  status 
  1698. STATUS LINE     line. 
  1699.  
  1700.                 It looks something like this:
  1701.                   User Name--Location 5sl 10calls 2msgs ctn
  1702.  
  1703.                 Which breaks down as:
  1704.                   "User Name" is just that, the callers name.
  1705.                   "Location" is  the callers city and state.    If  flashing, 
  1706.                              then  this  is  the text they typed for  a  chat 
  1707.                              request. 
  1708.                   "5sl" is  the callers security level value ("5")  based  on 
  1709.                         their current (or temporary)  grouping.   Example: if 
  1710.                         you an SL range of 5 to 9,  and this user has 7,   it 
  1711.                         will  still show 5.   It is done this way so you  can 
  1712.                         see the effects of your <home>/<end> efforts. 
  1713.                   "10calls" is the number of times the caller has called.
  1714.                   "2msgs" is  the  number  of messages the  caller  has  ever 
  1715.                           posted ("2"). 
  1716.                   "c" appears if chat trap-to-file is on.
  1717.                   "t" appears if trap all to file is on.
  1718.                   "n" appears if sysop-on-next is on.
  1719.                   "PR" appears if the user is undergoing Peer Review.
  1720.                   A  music symbol when you are allowing users to try to  chat 
  1721.                   with you. 
  1722.  
  1723.                 Other information that appears:
  1724.                   "+5'd" after  you  just increased their session time  by  5 
  1725.                          minutes. 
  1726.                   "-5'd" after  you  just decreased their session time  by  5 
  1727.                          minutes. 
  1728.                   "SL+" after you just increased their SL by 1 level.
  1729.                   "SL-" after you just decreased their SL by 1 level.
  1730.                   "SL^" when you have reached the maximum SL.
  1731.                   "SL_" when you have reached the minimum SL.
  1732.  
  1733.  
  1734. VOTING          The  voting questions are contained in the  VOTE.TXT.    This 
  1735.                 file is structured as follows: 
  1736.  
  1737.                   Number: total number of questions
  1738.                   Text: line 1                            ┐
  1739.                   Text: to line n: question text          │ a
  1740.                   Number: total number of options (x)     │ single
  1741.                   Text: line 1                            │ question
  1742.                   Text: to line x: options text           ┘
  1743.                   Text: line 1                            ┐
  1744.                   Text: to line n: question text          │ a
  1745.                   Number: total number of options (x)     │ single
  1746.                   Text: line 1                            │ question
  1747.                   Text: to line x: options text           ┘
  1748.                   Text: line 1                            ┐
  1749.                   Text: to line n: question text          │ ...
  1750.                   etc.
  1751.  
  1752.                 Or to simplify:
  1753.  
  1754.                   n                      <- Total number of questions.
  1755.                   Text Q1 Line1          <- Question 1, can be up to 14 lines.
  1756.                   Text Q1 Line2
  1757.                   3                      <- Number of options for question 1.
  1758.                   Option1                <- Each option.  Can have up to 7.
  1759.                   Option2
  1760.                   Option3
  1761.                   Text Q2 Line1          <- Question 3, can be up to 14 lines.
  1762.                   Text Q2 Line2
  1763.                   4                      <- Number of options for question 3.
  1764.                   Option1                <- Each option.  Can have up to 7.
  1765.                   Option2
  1766.                   Option3
  1767.                   Option4
  1768.                   Text Q3 Line1          <- Question 3 on, same as before.
  1769.                   etc.
  1770.  
  1771.                 Example:
  1772.  
  1773.                   2                                  <-number of questions.
  1774.                   Do you like furry animals?         <-question #1
  1775.                   3                                  <-number of options.
  1776.                   Yes                                <-option 1/3
  1777.                   No                                 <-option 2/3
  1778.                   Yes when they are in a zoo.        <-option 3/3
  1779.                   Do you like the great outdoors?    <-question #2
  1780.                   4                                  <-number of options.
  1781.                   Yes, I visit them a lot.           <-option 1/4
  1782.                   Yes, I have a garden.              <-option 2/4
  1783.                   Yes, I have a plant at the office. <-option 3/4
  1784.                   No, burn it down.                  <-option 4/4
  1785.  
  1786.                 While  you  may only have a maximum of 7 of your own  options 
  1787.                 for  a  user to select from,  the software also  provides  an 
  1788.                 "Other"   and "No Opinion"  (the default)  options  for  each 
  1789.                 question. 
  1790.  
  1791.                 When  a  user  chooses "other"  (the  final  voting  question 
  1792.                 option), they are prompted to enter text describing what they 
  1793.                 mean.  This can sometimes be a simple option you neglected to 
  1794.                 include,  or a whole complex belief idea.   this text is then 
  1795.                 sent to the sysop as a message from the AI.  You may then use 
  1796.                 their  answer  to  decide if the  voting  options  need  more 
  1797.                 options. 
  1798.  
  1799.                 The "No Opinion"  option is the same as not voting--and  will 
  1800.                 result  in the question repeatedly coming up (next call)   if 
  1801.                 the  voting  is is being done at login.   Because it  is  not 
  1802.                 considered a real vote,  the "No Opinion"  selections are not 
  1803.                 graphed either. 
  1804.  
  1805.                 When an option's text runs into  the graph,  you will need to 
  1806.                 shorten the option's text.
  1807.  
  1808.                 The graph shows all options except "No Opinion".
  1809.  
  1810.                 The  graph  automatically re-size's itself between  50%   and 
  1811.                 100%--to maximize graphic variability. 
  1812.  
  1813.                 
  1814. PSEUDO-AI       The Pseudo-AI can only send private messages (E-Mail)  in and 
  1815.                 out of the Private Mail base, number 001. 
  1816.  
  1817.                 Any  messages  redirected from the AI to the sysop go to  the 
  1818.                 sysop--not the message-op of message base 001. 
  1819.  
  1820.                 I pretty much assume you will set the message-op  of area 001 
  1821.                 (Private Mail) to your name.   You should not try to relocate 
  1822.                 the private  mail/e-mail/whatever  from  area 001  to another 
  1823.                 number. 
  1824.  
  1825.  
  1826. ACCOUNT VALUE   Accounts do have value.  The harder they are to get, the more 
  1827.                 value they have. 
  1828.  
  1829.                 Simple higher SL values increase their value. 
  1830.  
  1831.                 Adding  Peer  Review  increases  the  value  of  all   passed 
  1832.                 accounts. 
  1833.  
  1834.                 Adding other requirements,  such as name verification  (users 
  1835.                 send in proof of their name) or phone verification (call back 
  1836.                 testing), further adds value. 
  1837.  
  1838.                 Finally,  stats are seen by all--so if a user has a lot of UL 
  1839.                 credits, that account has worth. 
  1840.  
  1841.                 What  does this mean.   It means you could have  troubles  as 
  1842.                 accounts  increase in value.   More hacking attempts.   Users 
  1843.                 selling,  or trading accounts.   Probably other stuff I  have 
  1844.                 not thought of. 
  1845.  
  1846.  
  1847. LIFE & DEATH    There  are many aspects to this capability,  as it  has  many 
  1848. DELETE          requirements   and  conditions  that  must  be  met  to  both 
  1849.                 implement it and for a user to use it. 
  1850.  
  1851.                 To implement it:
  1852.                   Set the toggle to allow it to ON.
  1853.                   In  "Change Settings", set a minimum amount of drive  space 
  1854.                   before this becomes active, and set a minimum user SL value 
  1855.                   who may use it. 
  1856.                   In your menus,  have an entry for "Asst"  (usually in  your 
  1857.                   login  loop).   Use an "ifSL"  entry to give it the same SL 
  1858.                   value as we do in Change Settings. 
  1859.                 To remove it:
  1860.                   Set the toggle to allow it to OFF.
  1861.                   Remove the "Asst" menu entry.
  1862.  
  1863.                 Every thing is individual.   "Asst"  will display the AI help 
  1864.                 request to anybody,   which is why we set the SL field in the 
  1865.                 menu command itself.  When using the L&D system, any user may 
  1866.                 attempt to delete it--which is why there is a Change Settings 
  1867.                 SL value.   That user could do it at any time,  which is  why 
  1868.                 there  is  a "only if less than this amount of  drive  space" 
  1869.                 Change Settings field. 
  1870.  
  1871.                 It is complex because it needs to be.  This capability allows 
  1872.                 users to delete files from your download directories.  So you 
  1873.                 must  be  able to define who can delete and when they can  do 
  1874.                 it. 
  1875.  
  1876.                 The way it is currently configured,  just set the appropriate 
  1877.                 Toggle to on to implement it with my defaults.   Which are SL 
  1878.                 value of at least 10  to do and must be less than one meg  of 
  1879.                 available upload space to do. 
  1880.  
  1881.  
  1882. FILE            When shelling to DOS--any changes you make in the text  files 
  1883. MANAGEMENT      (such  as  BLOCKS/LINES/SHORT/etc.)   either  will  not  take 
  1884.                 effect, will screw something up, or will crash the BBS. 
  1885.  
  1886.                 Only  after  exiting the BBS,  or full-dooring from the  BBS, 
  1887.                 should  you  then mess around with the BBS files.    This  is 
  1888.                 because upon return the software will "know"  which files you 
  1889.                 altered.    Whereas  with shelling or  shrinking,   speed  is 
  1890.                 considered   to  be  the  important  ability,   so  no  "file 
  1891.                 management" is done. 
  1892.  
  1893.                 This includes the deletion of downloadable programs.    While 
  1894.                 it should not cause any trouble--why take the risk.  Just use 
  1895.                 <alt>r  from the waiting-for-caller screen to remove  a  file 
  1896.                 from the downloads areas (that is, do not do it when dooring, 
  1897.                 after you have exited you can do whatever you like).  None of 
  1898.                 the  dooring  types  recheck your file areas,   or  user  and 
  1899.                 messages files, as well as restarting the BBS itself does. 
  1900.                 
  1901.  
  1902. DOORS           A  door program is any program you temporarily  pass  control 
  1903.                 too.  Some doors do not use the door system: DSZ, PKZIP, etc.  
  1904.                 Usually  the door system is reserved for programs which  also 
  1905.                 communicate  out the comm port.   Although the door system is 
  1906.                 also a  convenience for defining programs to exit to  for the 
  1907.                 sysop. 
  1908.                 
  1909. Defining        Use  "Door  Maintenance"  from the Configuration menu to  add 
  1910.                 additional  doors to the menu options,  or to modify  current 
  1911.                 doors. 
  1912.  
  1913.                 Door definitions contain the following fields:
  1914.  
  1915.                 Access start time
  1916.                 Access end time
  1917.                   Access to this door is allowed between, and including,  the 
  1918.                   time  supplied  here.   If the two values are equal,   then 
  1919.                   access to the door is allowed during all 24 hours. 
  1920.  
  1921.                 Maximum time allowed in door
  1922.                   The  maximum amount of time a user is allowed in  the  door 
  1923.                   per door  access.   The door handles this,  so it is by  no 
  1924.                   means  guaranteed.   Use some high number (like  999)   for 
  1925.                   unlimited access time. 
  1926.                   
  1927.                   If the user's "time left today"  is less than this  amount, 
  1928.                   then their "time left today" amount is used instead. 
  1929.  
  1930.                   A zero value will still execute the door (it is always  the 
  1931.                   door's  responsibility  to guard the time)  but  if  it  is 
  1932.                   handled properly by the door program, they will not be able 
  1933.                   to use the door program. 
  1934.  
  1935.                 Logging type
  1936.                   0 = none
  1937.                   9 = everything the door program has
  1938.                   1 to 8 are somewhere in between (door program defines,  you 
  1939.                   should look at  the door program's documentation  to see if 
  1940.                   it supports this capability). 
  1941.  
  1942.                 Minimum drive space needed
  1943.                   The  minimum drive space (in bytes)  that the door needs on 
  1944.                   the drive to run.  Usually this will be very small.  If you 
  1945.                   want to use 0,  you should be sure the door program updates 
  1946.                   no  files (including the door-exit files).   2048  will  be 
  1947.                   fine  for most doors,  but some may need a lot more if they 
  1948.                   need to update large data files (example,  a  daily packing 
  1949.                   would  need at least a megabyte--probably 2 or 3).   So  it 
  1950.                   varies  widely,  which is why this field is here--the  door 
  1951.                   program  will  not  be  run  if there is not at least  this 
  1952.                   amount of drive space. 
  1953.  
  1954.                 Door-Op
  1955.                   Who is the door-sysop for this door.   Only this name  will 
  1956.                   get sysop treatment from the door program. 
  1957.  
  1958.                 Path
  1959.                   Drive\path  specification of the door  program.    Example: 
  1960.                   C:\BBS\DOORS  or  C:\BBS\DOORS\  or E:\  etc.    It  should 
  1961.                   contain the path of the door programs' files. 
  1962.  
  1963.                   This  field is the drive that is checked to determine  that 
  1964.                   there  is enough space.   If empty,  no space  checking  is 
  1965.                   done. 
  1966.  
  1967.                 Execution
  1968.                   Filename  and  command line to execute the door.   If  your 
  1969.                   door  program  is  at C:\BBS\DOORS\ABC.EXE  you  would  put 
  1970.                   C:\BBS\DOORS\ above and ABC.EXE here. 
  1971.  
  1972.                   Command  lines  are  of the form:  ABC.EXE /a  /k  (in  the 
  1973.                   future,   parameters  like %1  for user name will  also  be 
  1974.                   handled). 
  1975.            
  1976.                   If you know what you are doing,  you could define  Path  to 
  1977.                   point  to  the  door programs files,   and  have  the  door 
  1978.                   program's  executable  somewhere else.   Example:    door's 
  1979.                   files in C:\BBS\DOORS but door program at E:\ABC.EXE.   You 
  1980.                   would  put  "C:\BBS\DOORS"   in Path and  "E:\ABC.EXE"   in 
  1981.                   execution.  Note, however,  this will most likely only work 
  1982.                   if  the door program has a configuration file in which  you 
  1983.                   tell  it  where it can find its  files--otherwise  it  will 
  1984.                   assume they are at E:\ with the executable. 
  1985.  
  1986.                   The following "%"  macros are expanded when  found  in  the 
  1987.                   execution line: 
  1988.  
  1989.                     %B  Baud rate (2400, 4800, 9600, 14400, 19200, 38600) of 
  1990.                         user.
  1991.                     %D  Path to current door's directory.
  1992.                     %N  Node (1..n) being used.
  1993.                     %L  Transfer pathnames file to use (usually FNAMES.CTL).
  1994.                     %P  Comm port (1..n) being used.
  1995.                     %S  BBS's locked baud rate (2400, 19200).
  1996.                     %U  Path to currently selected file area.
  1997.  
  1998.                   Note:  "%P%P%P" expands to "111" but "%P %P %P" is  "1 1 1" 
  1999.                   (if  comm  port = 1 of course).   That is,  no  leading  or 
  2000.                   trailing spaces are added. 
  2001.  
  2002.                   These  codes  are  the same as used by  protocol  execution 
  2003.                   lines. 
  2004.  
  2005. Calling         To call a door program, you use the "DOOR" menu command.
  2006.                 
  2007.                 This command is of the form:  DOOR _EXITTYPE _FILETYPE _xxx
  2008.  
  2009.                 Where "xxx" is a number from 001 to 999  corresponding to the 
  2010.                 record number in your Doors database. 
  2011.  
  2012.                 Where "EXITTYPE" is the type of exit from the BBS you wish to 
  2013.                 do.  This field is optional. 
  2014.  
  2015.                 Where "FILETYPE"  is the type of door-exit  information  file 
  2016.                 you wish to produce for the door program.  This field is also 
  2017.                 optional. 
  2018.  
  2019.                 There are 3 types of EXITTYPE:
  2020.  
  2021.                 _shell
  2022.                   This is the quickest of the three methods.  Fast at exiting 
  2023.                   and  fast at returning.   It simply shells to DOS and  runs 
  2024.                   the  program.   Its limitation is that only  the  currently 
  2025.                   available RAM can be used by the program.  So it is not for 
  2026.                   really large door programs.   It is the method the software 
  2027.                   uses for such things as protocols and archivers.  Preferred 
  2028.                   method for all door programs. 
  2029.  
  2030.                 _shrink
  2031.                   This is the middle-ground of the three commands.   It swaps 
  2032.                   the program to disk, runs the door program,  then  re-loads 
  2033.                   the  program again.   So you have delays when  exiting  and 
  2034.                   returning.    The  advantage is that you have  full  memory 
  2035.                   available  for  your  door program.   The  delays  are  not 
  2036.                   significant.  This is the recommended method for large door 
  2037.                   programs.   The software first checks to make sure at least 
  2038.                   400k  of drive space is available before allowing the  door 
  2039.                   program to be run. 
  2040.                 
  2041.                 _full
  2042.                   This method is the odd-ball of the three commands.   It  is 
  2043.                   as  quick  as shelling to exit,  but as slow as  the  total 
  2044.                   delay for shrinking upon return.  It first completely exits 
  2045.                   the program, runs the door program, then completely returns 
  2046.                   (the  user  is kept on-line).   It gives your door  program 
  2047.                   full memory usage. 
  2048.  
  2049.                 There are 7 type of FILETYPE:
  2050.                 
  2051.                 _doorinfo
  2052.                   This produces a DORINFOx.DEF door-exit file.  Also known as 
  2053.                   "RBBS" type file. 
  2054.  
  2055.                 _doorsys
  2056.                   This  produces a DOOR.SYS door-exit file.   Also  known  as 
  2057.                   "Gap" type file. 
  2058.  
  2059.                 _wwiv
  2060.                   This  produces a CHAIN.TXT door-exit file.   Also known  as 
  2061.                   "WWIV" type file. 
  2062.  
  2063.                 _spitfire
  2064.                   This produces a SFDOORS.DAT door-exit file.   Also known as 
  2065.                   "SpitFire" type file. 
  2066.  
  2067.                 _pcb12
  2068.                   This produces a PCBOARD.SYS door-exit file.   Also known as 
  2069.                   "PC-Board 12.x" type file. 
  2070.  
  2071.                 _pcb14
  2072.                   This produces a PCBOARD.SYS door-exit file.   Also known as 
  2073.                   "PC-Board 14.x" type file. 
  2074.  
  2075.                 _wildcat
  2076.                   This produces a CALLINFO.BBS door-exit file.  Also known as 
  2077.                   "WildCat! 2.x" type file. 
  2078.  
  2079.                 See  TECHDOCS.DOC if you want detailed information about  the 
  2080.                 door-exit files. 
  2081.                 
  2082.                 Upon exit to a door,  a JDRBBSxx.DEF exit-information file is 
  2083.                 created in the directory defined in Path (see Defining). 
  2084.  
  2085.                 See also: FILE MANAGEMENT
  2086.  
  2087. Executing       The door program is executed when a user selects the  hot-key 
  2088.                 (you defined)  from the menu (you defined)  for the door (you 
  2089.                 defined). 
  2090.  
  2091.                 What occurs (???'s are replaced by node number, eg. 001):
  2092.  
  2093.                 DOOR???.BAT is created.  It contains:
  2094.  
  2095.                   d:
  2096.                   CD \path
  2097.                   execute
  2098.                   C:
  2099.                   CD \BBS
  2100.                   BBS???.BAT
  2101.  
  2102.                   "d:" is from the door Path field.
  2103.                   "\path" is from the door Path field.
  2104.                   "execute" is the door Execute field.
  2105.                   "C:" comes from PATHS.DAT.
  2106.                   "\BBS" comes from PATHS.DAT.
  2107.                   "BBS???.BAT" comes from PATHS.DAT.
  2108.  
  2109.                 BBS???.BAT contains:
  2110.  
  2111.                   @ECHO OFF
  2112.                   SHROOM @SHROOM.YES JDRBBS.EXE
  2113.                   DOOR???.BAT
  2114.  
  2115.                 You  can  see  how it works.   You typed BBS001,   which  ran 
  2116.                 BBS001.BAT, to start the software.  At that time, DOOR???.BAT 
  2117.                 contained just a REMark line. 
  2118.  
  2119.                 Now DOOR???.BAT is given something,  so that when we exit, it 
  2120.                 changes to the appropriate directory,  runs the program,  and 
  2121.                 returns back and re-runs BBS???.BAT. 
  2122.  
  2123.                 Upon return,  the software checks DOOR???.BAT,  finds that we 
  2124.                 are  returning from a door,  and acts accordingly.   It  also 
  2125.                 resets DOOR???.BAT to contain just a REMark--so that we  exit 
  2126.                 the program in the future. 
  2127.  
  2128.                 The above DOOR???.BAT file might look familiar.   Most  doors 
  2129.                 come with a batch file that looks something like so: 
  2130.  
  2131.                   COPY door-exit file to door directory
  2132.                   CD to door directory
  2133.                   run door program
  2134.                   CD to BBS directory
  2135.  
  2136.                 Ignore these!   The BBS handles all the movement/etc.    Just 
  2137.                 specify  the door directory in the Path field,  and the  door 
  2138.                 program execution line in Execution field,  and  it will work 
  2139.                 fine. 
  2140.  
  2141.                 Let me re-iterate this.  You define the door program to run--
  2142.                 you  could define a door batch file,  but  not  normally--the 
  2143.                 software  creates its own batch file which moves you  to  the 
  2144.                 door program's directory before executing it, and returns you 
  2145.                 to  the  BBS's  directory upon exit.   This is  an  extremely 
  2146.                 convenient  feature,   and most doors go out of their way  to 
  2147.                 describe a batch file for you to create--I am saying that for 
  2148.                 the most part you can ignore that hassle. 
  2149.  
  2150.                 For _shell and _shrink methods the batch files are  not used, 
  2151.                 instead  the software internally does all the same  commands, 
  2152.                 and  then  just calls and does the "execution"  line  of  the 
  2153.                 door.    Thus,   all three methods have the hassle-free  door 
  2154.                 execution procedure. 
  2155.  
  2156. Time            Like file transfers,  time spent in doors is reduced from the 
  2157. Maintenance     daily time available, and if need be,  from minute-credits as 
  2158.                 well. 
  2159.  
  2160.                 A user may call a door as many times as they want.   You  may 
  2161.                 set a "maximum time"  a user may spend in a door per session, 
  2162.                 but  since  a  user may use the door  any  number  of  times, 
  2163.                 ultimately they are limited by their total time available. 
  2164.  
  2165.                 Before calling the door,  the software will verify that  they 
  2166.                 have time available. 
  2167.                 
  2168.                 A  door program gives minute-credits,  or removes them,   for 
  2169.                 reward  or  loss,  respectively.   If a door  program you are 
  2170.                 installing  has  the ability to define the rate  of  exchange 
  2171.                 (example:  1  minute-credit = $100,000)  then set this  value 
  2172.                 such  that  the highest a user would ever attain  (in  total) 
  2173.                 does not exceed 32,000  and the lowest they ever  attain  (in 
  2174.                 total)   is not  below  -32,000.    Minute-credits should not 
  2175.                 casually  be  played around with in the doors,   they  should 
  2176.                 represent seriously high goals in the game.  A gambling door, 
  2177.                 for  example,  should not use 1:1  minute-credit ratios,  but 
  2178.                 rather  the  byte part of the exchange rate  ($1,000,000   or 
  2179.                 $10,000.00). 
  2180.  
  2181.                 Upon return from the door,  time used in the door is  handled 
  2182.                 like  it is handled with bidirectional transfers--if the user 
  2183.                 exceeded the  time they  were allowed in the door,  exchanges 
  2184.                 will  be  done,   and  it  is  possible  they  could  end  up 
  2185.                 "borrowing" from future uploads. 
  2186.  
  2187.                 When a user's minute-credits reach or exceed 32,767,  it will 
  2188.                 never  increase.     When it reaches -32,767  it will not  be 
  2189.                 reduced farther. 
  2190.  
  2191. Misc.           If you give a user temporarily higher  security  level,   and 
  2192.                 they run a door, then that temporary level becomes their new, 
  2193.                 permanent, level. 
  2194.  
  2195.                 I have been  testing  some  of the  door  programs  with this 
  2196.                 software,  see the file DOORS.DOC for helpful information  on 
  2197.                 various door programs. 
  2198.  
  2199.                 To speed up the loading of doors,  use PKLite  or  a  similar 
  2200.                 utility  on  the .EXE and .COMs.   However,  if you  get  the 
  2201.                 message "has overlays, continue?" then do not continue--these 
  2202.                 programs, like JDRBBS.EXE itself, have internal overlays that 
  2203.                 cannot be accessed if they are compressed. 
  2204.  
  2205.                 When  run  as an event,  no time checking/handling  is  done.  
  2206.                 Since there is no user. 
  2207.  
  2208.                 If  you set something up wrong,  the good door programs  will 
  2209.                 tell you what was wrong. 
  2210.  
  2211.  
  2212. PROTOCOLS       All  download protocols must contain a "@%L"--this expands to 
  2213.                 "@C:\BBS\NODE.???\TEMPAREA\FNAMES.CTL"  or  whatever name you 
  2214.                 assign.    All protocols  must be able to do batch transfers, 
  2215.                 and accept  a file  containing  those  pathnames  the  caller 
  2216.                 wishes   to download.  The "@" is not required, some software 
  2217.                 package may prefer "&" or some other weird character. 
  2218.  
  2219.                 The  following "%"  macros are expanded  when  found  in  the 
  2220.                 execution line: 
  2221.  
  2222.                   %B  Baud rate (2400, 4800, 9600, 14400, 19200, 38600) of 
  2223.                       user.
  2224.                   %D  Path to current door's directory.
  2225.                   %N  Node (1..n) being used.
  2226.                   %L  Transfer pathnames file to use (usually FNAMES.CTL).
  2227.                   %P  Comm port (1..n) being used.
  2228.                   %U  Path to currently selected file area.
  2229.  
  2230.                 Note: "%P%P%P" expands to "111" but "%P %P %P" is "1 1 1" (if 
  2231.                 comm port = 1 of course).   That is,   no leading or trailing 
  2232.                 spaces are added. 
  2233.  
  2234.                 These codes are the same as used by door execution lines.
  2235.  
  2236.                 The protocol database has the following fields:
  2237.  
  2238.                 Defining letter
  2239.                     This  is the letter the system uses internally,  and  the 
  2240.                     user sees for "protocol" in their Profile, of the defined 
  2241.                     protocol.   If you use two letters that are the same, you 
  2242.                     should be sure that their SL ranges do not conflict. 
  2243.  
  2244.                 Minimum SL needed
  2245.                     This  is the minimum SL a user needs to have  before  the 
  2246.                     system lets them select this protocol. 
  2247.  
  2248.                     Set this higher than any SL to disable this protocol.
  2249.  
  2250.                 Maximum SL allowed
  2251.                     This  is the maximum SL a user needs to have  before  the 
  2252.                     system lets them select this protocol. 
  2253.  
  2254.                     Using  a  min  SL  and  a max SL  allows  you  to  direct 
  2255.                     different  flavors  of  the  same  protocol  to different 
  2256.                     users.   Example, in my set up,  level 5 users do not get 
  2257.                     to do resume-later upload aborts, and so I use a DSZ line 
  2258.                     that  does not save incomplete files  for  that  security 
  2259.                     level. 
  2260.  
  2261.                     If this value is zero,  then it is ignored.  Allowing any 
  2262.                     SL once the minimum SL requirement is satisfied. 
  2263.  
  2264.                 Success UL letter
  2265.                     This  is  the letter,  when found in the log file,   that 
  2266.                     declares that the upload was successful. 
  2267.  
  2268.                 Fail UL letter(s)
  2269.                     These are the letters,  when found in the log file,  that 
  2270.                     declare the upload a failure. 
  2271.  
  2272.                     See Fail DL letter(s) as well.
  2273.  
  2274.                 Success DL letter
  2275.                     This  is the letter,  when found in the log  file,   that 
  2276.                     declares that the download was successful. 
  2277.  
  2278.                 Fail DL letter(s)
  2279.                     These are the letters,  when found in the log file,  that 
  2280.                     declare the download a failure. 
  2281.  
  2282.                     Technical note:   The  following is fairly detailed,  and 
  2283.                     you may not  ever need  it (recommend you read it only if 
  2284.                     you are having troubles detecting bad uploads): 
  2285.  
  2286.                     In  order  for the to correctly identify  bad  transfers, 
  2287.                     either this field must be one character, or the pass/fail 
  2288.                     determining word must be one character.   Example:  DSZ's 
  2289.                     pass/fail word is either "E"  or "L"--one character.   So 
  2290.                     you  can have up to 3 characters here ("LE").    If  some 
  2291.                     other protocol has "Bad"  for failed transfers and "Good" 
  2292.                     for successful transfers, then you must put a "B"  or "a" 
  2293.                     here,  not "Bad", not "Ba", not more than one character--
  2294.                     because  the pass/fail determining word is more than  one 
  2295.                     character. 
  2296.  
  2297.                     To  simplify:  the software looks for the "Fail  letters" 
  2298.                     inside the "pass/fail determining word" and looks for the 
  2299.                     "pass/fail  determining word"  inside the "Fail Letters".  
  2300.                     If either of these cases come up true,  then the transfer 
  2301.                     is determined to have failed. 
  2302.  
  2303.                     This allows me to find: "L" or "E"--rather than trying to 
  2304.                     find "LE" in the pass/fail word.  So, while "LE" will not 
  2305.                     be found in "E",  "E" will be found in "LE".  If you have 
  2306.                     "LE"  and the protocol leaves multiple letters,  such  as 
  2307.                     "Lbad",  then it will not find the "L"--since either "LE" 
  2308.                     will not be found in "Lbad" and "Lbad"  will not be found 
  2309.                     in "LE". 
  2310.  
  2311.                 Pass/fail determining word
  2312.                     This is the "word number"  of the letter that  determines 
  2313.                     whether  the transfer was successful or not.    The  word 
  2314.                     number of the log entry. 
  2315.  
  2316.                     Words  are  defined  as  text  having a least  one  space 
  2317.                     between them.   Example: "A B C" has 3 words,  but "A BC" 
  2318.                     has only two.   If the protocol produces entries that are 
  2319.                     some times blank (rather than,  say,  a  zero),  then you 
  2320.                     cannot  use  it  (unless  the  trouble  occurs  after the 
  2321.                     determining and pathname words). 
  2322.  
  2323.                 Pathname word-number
  2324.                     This is the "word number" of the transferred pathname  in 
  2325.                     the log file. 
  2326.                     
  2327.                     The  pathname  need not contain a full  file  path.    It 
  2328.                     should at least contain the file name transferred. 
  2329.  
  2330.                 Percentage of time to give
  2331.                     This is the percentage of upload time (as determined from 
  2332.                     2400 baud) that you should give in minute-credits. 
  2333.  
  2334.                     No  time  is  taken  off  for  uploading,   except   with 
  2335.                     bidirectional protocols. 
  2336.  
  2337.                 Description
  2338.                     This  is the text the user sees when selecting and  using 
  2339.                     the protocol. 
  2340.  
  2341.                 Log file pathname
  2342.                     This  is the full path and file name of the file in which 
  2343.                     the protocol keeps the log of what happens. 
  2344.  
  2345.                 Upload execution
  2346.                     This  is  the  execution line we  should  use  to  handle 
  2347.                     uploads to the BBS.
  2348.                     
  2349.                     In both execution lines,  you  should  include  the  full 
  2350.                     pathname  of  the  protocol driver being used.   Example, 
  2351.                     "C:\BBS\DSZ.EXE". 
  2352.  
  2353.                 Download execution
  2354.                     This  is  the  execution line we  should  use  to  handle 
  2355.                     downloads from the BBS. 
  2356.  
  2357.                 The very  first protocol is known as the default protocol, it 
  2358.                 is given when the user's selected protocol (somehow)  has  no 
  2359.                 allowable match.   The internal terminal program always  uses 
  2360.                 the default protocol.   You may reassign the default protocol 
  2361.                 by using a defining letter of "*". 
  2362.  
  2363.                 You must have a BiModem entry,  and a Zmodem entry.   BiModem 
  2364.                 execution  lines must allow for the "/T"  restriction (so you 
  2365.                 should not use /T with your BiModem line). 
  2366.  
  2367.  
  2368. EVENTS          All events are done after a user logs off,  or after the "Not 
  2369.                 before"  time has passed when no user in on-line.  Example: a 
  2370.                 00:00:00  does not occur at 00:00:00.  But at 00:00:01  if no 
  2371.                 user  is  on.  If a user is on it will be executed after they 
  2372.                 log off. 
  2373.  
  2374.                 There is no forcing a user off for events,  or reducing their 
  2375.                 time for an event. 
  2376.  
  2377.                 You  can  turn off an event by not giving it any days of  the 
  2378.                 week. 
  2379.  
  2380.  
  2381. NETMAIL AND
  2382. ECHOMAIL
  2383.  
  2384. Overview        What is net mail?
  2385.  
  2386.                 A "net" is just a bunch of computers.
  2387.  
  2388.                 "Net mail" are messages exchanged between computers.
  2389.  
  2390.                 Usually  each net requires a special type of net mail.   That 
  2391.                 is, if a computer you wish to send mail to is not a member of 
  2392.                 the  net  to which you subscribe,  then you  cannot  exchange 
  2393.                 mail.    Examples  of different nets range from  FidoNet  and 
  2394.                 InterNet to LAN nets to simple me-and-my-friends nets. 
  2395.                 
  2396.                 Lately, there has been an effort to merge nets, and allow the 
  2397.                 exchange of messages between these nets.   As well as efforts 
  2398.                 to standardize message formatting and other aspects of inter-
  2399.                 computer communications.  However, at this time I do not have 
  2400.                 the various specs, but will expand as I get the specs. 
  2401.                 
  2402.                 This software supports the net type known as "FidoNet".
  2403.  
  2404.                 FidoNet  uses a three number "node ID"  for each member of  a 
  2405.                 network.  It is organized as: Zone:Net/Node 
  2406.  
  2407.                 Zone  means "1"  for FidoNet,  other numbers for other  nets.  
  2408.                 JDR_BBS supports Zone's up to 32767,  but most other net mail 
  2409.                 software only goes to 255--so you may want to limit your Zone 
  2410.                 number  for  your net when you know you will  be  interfacing 
  2411.                 with these other mailers. 
  2412.  
  2413.                 Net means a sub-net.   Sub-net's are used to more efficiently 
  2414.                 and  cheaply  more mail and files around the  net.    Usually 
  2415.                 these sub-net's represent all the net members in a local area 
  2416.                 (city,  part of a state, etc.).   This hub is responsible for 
  2417.                 picking up mail from each member,  and dropping off new  mail 
  2418.                 to each member. 
  2419.  
  2420.                 The last field is Node.   These are individual members in the 
  2421.                 sub-net.  The "local address" of that member so that the sub-
  2422.                 net coordinator (hub) can tell who is who. 
  2423.  
  2424.                 All three together form what is known as your "net address"--
  2425.                 completely  unique  from anyone elses.    Note that  standard 
  2426.                 writing  of  a net address is as "Zone:Net/Node",   but  when 
  2427.                 entering a net address in this software you may type anything 
  2428.                 for  the "betweener"  characters.   Example:  "Zone.Net.Node" 
  2429.                 works.  So you do not have to remember the confusing ":/". 
  2430.                 
  2431.                 FidoNet is the most widely used net in the PC world.  It uses 
  2432.                 a specific address  format  and  has lots  Hubs which provide 
  2433.                 significant cost savings. 
  2434.  
  2435.                 A  net  mail  session involves sending packets  to  and  from 
  2436.                 another member (or hub).  Packets are messages  stored into a 
  2437.                 single file for transmission.  
  2438.  
  2439.                 To  get  an "official"  net address,  you must  contact  your 
  2440.                 area's hub (or somesuch) and ask them for one.  You will need 
  2441.                 to get at least one net address for each zone (net)  to which 
  2442.                 you wish to be a member.   Different nets exist for a variety 
  2443.                 of things. 
  2444.  
  2445. NetMail         NetMail  is a type of message area.   Messages left  in  this 
  2446.                 message  area do not go to a bunch of addressees,  but rather 
  2447.                 each message is destined for a specific address. 
  2448.  
  2449.                 To  define  a  message  area as NetMail,   give  it  the  NET 
  2450.                 attribute (but not the ECHO attribute). 
  2451.  
  2452.                 There  are  only two types of NetMail:  private  and  public.  
  2453.                 However,  you can create message areas that have a minimum SL 
  2454.                 requirement.   This can be useful to create a private NetMail 
  2455.                 message  area among sysops,  for example,  while also  having 
  2456.                 private  and  public NetMail message areas for all  users  to 
  2457.                 use. 
  2458.  
  2459.                 NetMail,  and EchoMail also,  differ from regular messages in 
  2460.                 that  they contain "hidden"  lines which provides information 
  2461.                 about  who  and where the message was  sent  from--no  matter 
  2462.                 where it finally ends up. 
  2463.  
  2464.                 NetMail  can be thought of as a point-to-point  mail  system.  
  2465.                 You create a letter, and you want it to go to another BBS. 
  2466.  
  2467. EchoMail        EchoMail is a message area type.
  2468.  
  2469.                 It  relies on "routing"  to decide where messages  are to  be 
  2470.                 sent. 
  2471.                 
  2472.                 EchoMail  message  areas are centered on one BBS.    This  is 
  2473.                 known as the originating BBS. 
  2474.  
  2475.                 To  become  a  member  of an echo,   you  must  call  up  the 
  2476.                 originating  BBS  and ask to be placed on the list  of  BBS's 
  2477.                 receiving the echo. 
  2478.  
  2479.                 You  need  to set up a message area to  receive  this  echo's 
  2480.                 mail.   From the originating BBS,  you get what is known as a 
  2481.                 "conference name"  (also a "tag name").   You use this in the 
  2482.                 "EchoMail  mapper"   I  have--connecting this name  with  the 
  2483.                 message  area  you want to receive the  messages.    You  may 
  2484.                 reference  multiple names to a single message area (combining 
  2485.                 echos--but  outgoing  messages will always be  references  as 
  2486.                 being in the first conference name for that area). 
  2487.                 
  2488.                 You must also create this message  area with the NET and ECHO 
  2489.                 attributes. 
  2490.  
  2491.                 The  next  step  is  routing.   Use  the  "Outgoing  EchoMail 
  2492.                 Routing"   command  for this.   This database only has  three 
  2493.                 fields:   message area,  net address,  and last-read pointer.  
  2494.                 The message area is an EchoMail area.  The net address is the 
  2495.                 net address of your originating BBS.   The last-read  pointer 
  2496.                 is  the  highest message number that that BBS has  seen--it's 
  2497.                 mainly internal, so you need not worry about it. 
  2498.  
  2499.                 Once  done,  whenever a message is posted on the  originating 
  2500.                 BBS,  that message will then be sent to all  member BBS's (of 
  2501.                 which  you  have become one).   This  is done according to  a 
  2502.                 schedule  the  originating  BBS  sets  up--usually  based  on 
  2503.                 message volume. 
  2504.  
  2505.                 Similarly,  when you post a new message in that area, it will 
  2506.                 be sent to the originating echo BBS,  which will then re-send 
  2507.                 it to all member BBS's.   This you decide.   If you route via 
  2508.                 your local hub,  then the cost is minimal, but if you have to 
  2509.                 call  long  distance,  than once a week might be  more  cost-
  2510.                 effective. 
  2511.  
  2512.                 There are two flavors of EchoMail:  EchoMail,  and Conference 
  2513.                 Mail. 
  2514.  
  2515.                 EchoMail consists of a single originating BBS, and a bunch of 
  2516.                 subscribing  BBS's.    Sending  messages can be  imagined  as 
  2517.                 fireworks: you launch new messages up to the originating BBS, 
  2518.                 and that BBS launches the messages out to all the subscribing 
  2519.                 BBS's (an umbrella). 
  2520.  
  2521.                 Conference Mail is slightly different in that all subscribing 
  2522.                 BBS's  are considered originating BBS's as well.   This means 
  2523.                 it  is the responsibility of each BBS to send new mail to all 
  2524.                 the other BBS's--this helps distribute costs. 
  2525.  
  2526.                 Typically,   routing files will only have a single line--that 
  2527.                 of the area's originating BBS for EchoMail.  However,  if you 
  2528.                 are  an originating BBS,  or the echo is a conference,   than 
  2529.                 your  routing  file will have entries for all the  BBS's  you 
  2530.                 wish to send duplicate copies of any new mail too. 
  2531.  
  2532.                 The software stops re-sending of messages back to the BBS who 
  2533.                 sent them to you.  So do not worry about duplicate messages.
  2534.  
  2535. FidoNet         FidoNet  is  the most popular PC-based net.   It  offers  the 
  2536.                 advantage of cost savings. 
  2537.  
  2538.                 FidoNet requires a FidoNet address.   To get one,  you should 
  2539.                 talk  to the sysop of BBS in your area who is getting FidoNet 
  2540.                 echo's.   Ask him which BBS he should call.   Then call  that 
  2541.                 BBS  and  ask the sysop for the procedures to get  a  FidoNet 
  2542.                 Address. 
  2543.  
  2544.                 Currently,  these procedures involve giving your address  and 
  2545.                 voice  phone number (they do not explain why).   You'll  also 
  2546.                 need to pay a small fee (usually under $20) per year. 
  2547.  
  2548.                 Once  done,  or not,  you'll need to get your  hands  on  the 
  2549.                 latest NODELIST.xxx file.  These have a variety of names, but 
  2550.                 should  be on the area coordinator's BBS.   It's hefty--it'll 
  2551.                 expand out to 1.2+  megs.  It contains all the other BBS's in 
  2552.                 the FidoNet network.
  2553.                 
  2554.                 These  "member lists"  are common to all nets you  join--each 
  2555.                 has their own, although few exceed 20k in size. 
  2556.  
  2557.                 You  need only unpack the node list and add an entry in  your 
  2558.                 node  list  database referencing this new (or changed)   node 
  2559.                 list.    The  next  time  the  BBS  is  restarted,   it  will 
  2560.                 automatically  discover  it as new (or changed--such as  when 
  2561.                 you edit it) and re-index it properly for the software's use. 
  2562.                 
  2563. Hubs            Hubs are  where the great cost savings of a net come in.  You 
  2564.                 route all your outgoing messages through a hub. 
  2565.  
  2566.                 Instead  of  having  to  call  each  address,   usually  long 
  2567.                 distance,  you can call your hub,  usually a local call,  and 
  2568.                 they  will  route the messages to any other  address  in  the 
  2569.                 world for you at no additional charge. 
  2570.  
  2571.                 It is the simple hub-and-spoke system.  Airlines and shipping 
  2572.                 companies use this method as well.   It is quite common,  and 
  2573.                 very efficient. 
  2574.  
  2575.                 You must  be  a FidoNet  member to use FidoNet hubs,  and the 
  2576.                 messages you route through the hub must be destined for other 
  2577.                 FidoNet members.   These other members can be local addresses 
  2578.                 or long distance or even international.  The same is true for 
  2579.                 each other net. 
  2580.  
  2581.                 Hubs go through a procedure known as polling.   In which  you 
  2582.                 call  them to get/receive new mail,  or the hub calls you  to 
  2583.                 drop  off/check  for  new mail.   Usually this is  done  each 
  2584.                 night--but any schedule is possible. 
  2585.  
  2586.                 For  now,   you should tell your hub to poll you.    This  is 
  2587.                 because I have a rather sophisticated polling routine in  the 
  2588.                 works  and  it  isn't ready for this release.   You  can  use 
  2589.                 "dHUB"--but  it is not fully ready yet,  as it only does  one 
  2590.                 calling attempt. 
  2591.                 
  2592. Costs           Both  NetMail  and EchoMail rely on the BBS that  posted  the 
  2593.                 message to foot the costs for actually sending the message. 
  2594.                 
  2595.                 So,  if you  have a hub,  then the  costs will consist of the 
  2596.                 yearly fee, and any local charges to call the hub. 
  2597.                 
  2598.                 If you do not have a hub,  you will have to  pay the costs to 
  2599.                 call the BBS's yourself.  The good thing about this is you do 
  2600.                 not have to do it everyday for  every  echo.   You can do it, 
  2601.                 for example, once a week, and you only need to do it when you 
  2602.                 have mail to send. 
  2603.  
  2604.                 If  you  wish to have an EchoMail area,  and you do not  have 
  2605.                 access  to a hub,  you should specify that those that want to 
  2606.                 receive  your echo should call you ("to poll you").   If  you 
  2607.                 have a hub to access, then it is easier to just send mail out 
  2608.                 to them. 
  2609.                 
  2610. Misc.           The software does not use NODEDIFF files (which your hub  can 
  2611.                 supply)   to update the node list.   It instead relies on you 
  2612.                 copying the whole new list over the old list.   However,  you 
  2613.                 may  do  "quicky"   updates (adding an address  or  few)   by 
  2614.                 creating a separate net list  containing  these new addresses 
  2615.                 (just remember to have the Zone and Host lines proper). 
  2616.  
  2617.                 After a NetMail message has been successfully sent,  it has a 
  2618.                 SENT flag set--so it will not be re-sent.  You can alter this 
  2619.                 flag by editing the message's header information. 
  2620.  
  2621.                 If  an  EchoMail  packet  accidentally  got  deleted  by  the 
  2622.                 receiving BBS,  or whatever,  you can just change the  "last-
  2623.                 message-seen" pointers in  the routing entry for that address 
  2624.                 to have the messages re-sent next time. 
  2625.  
  2626.                 Whenever  an exchange of mail occurs,  both mail you wish  to 
  2627.                 send,  and mail waiting for you, are exchanged.  That is, you 
  2628.                 do not have to call once to drop off, and again to pick up. 
  2629.  
  2630.                 Messages  are given the date/time of when they arrive to  the 
  2631.                 BBS--not  the  date/time  when  the message  was  created  on 
  2632.                 another BBS.
  2633.  
  2634.                 Same  for  message  numbers.   Messages are  given  the  next 
  2635.                 message number in your message areas--not the message  number 
  2636.                 used by the originating BBS. 
  2637.  
  2638.                 If  you run out of drive space when importing messages,   the 
  2639.                 .PKT  will be moved to your \BBS directory.   It will  remain 
  2640.                 here  and  await for you to import it manually when you  have 
  2641.                 enough  drive.   Manual import can be done by specifying  the 
  2642.                 .PKT  file's pathname when entering messages with the  Upload 
  2643.                 (import) option ON. 
  2644.  
  2645. Commands        There are 3 basic commands to handle net mail:
  2646.  
  2647.                 NETa  To  contact all members of an EchoMail area and attempt 
  2648.                       to  exchange  mail with them.   Long  Distance  charges 
  2649.                       would  add  up quickly were you to use  this.    It  is 
  2650.                       mainly for local or private nets.  It makes one attempt
  2651.                       at each address.  If contact is made, then all messages 
  2652.                       in  all areas destined for that address are sent.    So 
  2653.                       while  it uses a message area to decide which addresses 
  2654.                       to call, it will send that address any mail in any area 
  2655.                       they have waiting. 
  2656.  
  2657.                 <end> This  is  the key you may press after you call  a  BBS.  
  2658.                       This command  will send any new messages meant for  the 
  2659.                       BBS.  If you used "d string" to dial,  then it will use 
  2660.                       the  net address in your sysop's database--otherwise it 
  2661.                       will ask you which address to use. 
  2662.                       
  2663.                       Unless  you  belong to a hub,  this is the command  you 
  2664.                       will probably most use. 
  2665.                       
  2666.                       If an EchoMail area only routes to the originating BBS, 
  2667.                       then NETa is like an event version of this command. 
  2668.  
  2669.                       Some mailers will require that you wait until the BBS's 
  2670.                       (that you called) is no longer sending anything--if you 
  2671.                       are  having troubles by hitting <end>  right away,   or 
  2672.                       while  something  is displaying,  then wait  until  the 
  2673.                       display stops. 
  2674.  
  2675.                       How  many messages you can send with the <end>  command 
  2676.                       relies on two factors:  your computer's speed,  and the 
  2677.                       wait   the  called  computer  is  willing  to   endure.  
  2678.                       Usually,  the limit is whatever your computer can  pack 
  2679.                       in thirty seconds. 
  2680.  
  2681.                 dHUB  This command will  make  a single  attempt to call your 
  2682.                       hub.   If successful, it will drop off any new messages 
  2683.                       to  addresses which have mail coming and have the  same 
  2684.                       zone as the hub. 
  2685.  
  2686.                       This is the preferred command to exchange mail, if your 
  2687.                       hub cannot poll you. 
  2688.  
  2689.                 Unfortunately,   at  the last minute,  I  noticed a  problem: 
  2690.                 multiple  nets mean multiple hubs and multiple net  addresses 
  2691.                 for you.  My mistake.  However for now Settings allows you to 
  2692.                 only define one net address for yourself,  and one  for  your 
  2693.                 hub.   There is no easy way around this.   Keep the values at 
  2694.                 your  main net for now,  then change them and use <end>   for 
  2695.                 other nets.   This will be fixed next version (I'll also  add 
  2696.                 AKA support). 
  2697.                 
  2698.                 See also: MENU COMMANDS
  2699.  
  2700. Not Ready       The  software  cannot  handle  some  of  the  net  operations 
  2701.                 specific to hubs.   It does not "store and re-send"  packets, 
  2702.                 but creates and unpacks them when needed or received. 
  2703.  
  2704.                 An "intelligent" dialing system.  Such as repeat-until-answer 
  2705.                 and intelligence needed when calling other nodes. 
  2706.  
  2707.                 AKA addresses for net nodes.
  2708.  
  2709.                 Password protection schemes for net nodes.
  2710.  
  2711.                 Handling of specific hours in which a BBS accepts mail.
  2712.  
  2713.                 Lots of other minor stuff.
  2714.  
  2715.                 Registered   sysops  get  to  do  file  transfers  and   send 
  2716.                 compressed message packets. 
  2717.                 
  2718.  
  2719. MULTI-NODE/     With .08  the BBS is now undergoing "alpha" testing of multi-
  2720. MULTITASKING    node operations.   By "alpha" I mean I think it'll work,  but 
  2721. OPERATIONS      those of you who want to try it--let me know what happens and 
  2722.                 what is needed still. 
  2723.  
  2724.                 Protocol  logs need to be made  "multi-node-able"--I  haven't 
  2725.                 looked  into it yet,  but you can get around this  by  simply 
  2726.                 specifying  the  protocol log to be put in a  NODE.???   area 
  2727.                 (although this doesn't solve the environment SET's that  some 
  2728.                 use). 
  2729.  
  2730.                 Also,  there as yet is no "inter-node cross-talk".   That is, 
  2731.                 not  only  can't users talk to another user on another  node, 
  2732.                 but the BBS doesn't know who's on the other node. 
  2733.  
  2734.                 SHARE.EXE will need to be installed for multi-node operations 
  2735.                 under MS-DOS and DesqView (not sure about Windows, or OS/2).
  2736.  
  2737.                 I don't use any kind of fancy record-locking or file locking.  
  2738.                 I merely open all files in "deny none"  mode,  and assume DOS 
  2739.                 properly  handles  the job (that when you do an  INT  21h  to 
  2740.                 write to disk, that another INT 21h cannot be done at another 
  2741.                 node while the first one is midway though). 
  2742.                 
  2743.                 I'll  probably do inter-node stuff for the next release,  and 
  2744.                 some minor testing with DesqView and declare it done.  But it 
  2745.                 probably works now. 
  2746.  
  2747.                 One thing that should really be useful is a "sysop node"--you 
  2748.                 set up a node that nobody can contact via the phone, and just 
  2749.                 switch  to  that multi-task window when you  want  to  logon.  
  2750.                 This allows you to avoid waiting to access your own BBS. 
  2751.  
  2752.                 Do not let users on more than one node.
  2753.  
  2754.                 There is no serious checking for one node "re-working a file" 
  2755.                 and  the other nodes (for instance,  the sysop doing  a  pack 
  2756.                 files). 
  2757.  
  2758.                 Events will each run on each node for now.
  2759.  
  2760.                 These problems will have to be knocked down one at a time.
  2761.  
  2762.  
  2763. INTERNAL NETS   This involves connecting computers via a null modem and using 
  2764.                 JDR_BBS as a medium on one or more of your computers. 
  2765.                 
  2766.                 You must specify in your fossil driver line each port.    For 
  2767.                 instance,  I  have an HST connected to COM1  and a null modem 
  2768.                 connected to COM2, and use the following CONFIG.SYS line: 
  2769.                 
  2770.                   driver = x00.sys 2 b,0,19200 b,1,19200 r=4096 eliminate
  2771.  
  2772.                 There  are  two ways to connect up two computers via  a  null 
  2773.                 modem using JDR_BBS. 
  2774.  
  2775.                 The  first  method  is for when both  computers  are  running 
  2776.                 JDR_BBS.    This  involves  going  to the  waiting-for-caller 
  2777.                 screen of  both computers,  and selection <alt>p and changing 
  2778.                 two  whatever  comm  port  the null modems are connected  to.  
  2779.                 This is a hard link,  from which you can use <alt>s,  <pgup>, 
  2780.                 or <pgdn> only. 
  2781.  
  2782.                 The second method involves JDR_BBS being on one computer  run 
  2783.                 as  a  straight BBS,  and JDR_BBS on the  other  computer  in 
  2784.                 <alt>d.    For  both computers,  you will need to  first  use 
  2785.                 <alt>a to set the comm port to your null modem--you will need 
  2786.                 to  repeat this step when you are done.   This allows you  to 
  2787.                 use all the <alt>d commands. 
  2788.                 
  2789.                 You can mix and match the above,  <alt>p, <alt>d, <alt>a,  it 
  2790.                 does  not really matter.   What matters is that you get  both 
  2791.                 computers pointing to your null modem. 
  2792.                 
  2793.                 It might  be  more convenient to set  up  multi-tasked "sysop 
  2794.                 nodes"   on  each computer already pre-configured as  a  null 
  2795.                 modem  connection.   Giving it no timer ticks until you  need 
  2796.                 it. 
  2797.  
  2798.  
  2799. FILE            With  all the I/O being done,  it is inevitable that you  are 
  2800. CORRUPTION      going to get some sort of file corruption. 
  2801.  
  2802.                 Executing a: CHKDSK /F  will fix these problems.
  2803.  
  2804.                 However,   CHKDSK  may  fix  it by increasing  a  files  size 
  2805.                 (particularly for allocation errors).  For text files this is 
  2806.                 not  a  problem.  For the USERS, FILELIST,  and MESSAGES.HDR, 
  2807.                 you  should  run the appropriate integrity  testing  command.  
  2808.                 For  other  .DAT  files,   you can use their  Databaser  menu 
  2809.                 command to edit them to find any visible problems. 
  2810.                 
  2811.                 If  you  have Trap All ON,  and shell to DOS and  delete  the 
  2812.                 SESSION.LOG  file,  you most likely will get a fatal  "sector 
  2813.                 not found on drive d:"  and have to reboot the system.   This 
  2814.                 occurs  because I do not close my files when shelling to DOS.  
  2815.                 The reason I do not close them is because <alt>s could be hit 
  2816.                 anywhere,  and I have no way of knowing which files are open.  
  2817.                 DOS does not like you deleting its opened files. 
  2818.  
  2819.                 If  any of the .IDX index files become corrupt,  just  delete 
  2820.                 them  and restart the BBS,  they will then be recreated  (you 
  2821.                 should restart all nodes).  You can tell the users index, for 
  2822.                 example,  is corrupt if you are not allowed to enter what you 
  2823.                 know to be a valid user's name, or if the data returned about 
  2824.                 an account is wrong, or that of another user. 
  2825.  
  2826.  
  2827. TROUBLE-        If  you crashed you BBS while in a door program,  you  should 
  2828. SHOOTING        delete the DOOR???.BAT file.   If you do not, then every time 
  2829.                 you  try  to  exit the BBS,  it just  runs  this  batch  file 
  2830.                 thinking  a  door  is  being  run  (this  occurs  until   you 
  2831.                 successfully return from a door if you do not delete it). 
  2832.  
  2833.                 If  you are testing door programs,  or trying to  track  down 
  2834.                 something in one of the door exit files (DORINFOx.DEF, etc.), 
  2835.                 then  just  run JDRBBS.EXE (not BBS???.BAT)--after you select 
  2836.                 to exit the BBS to a door,  the system shuts down (because it 
  2837.                 could not run the DOOR???.BAT file from BBS???.BAT), allowing 
  2838.                 you  to look at the  door exit files,  or test door  programs 
  2839.                 using the same door exit files. 
  2840.  
  2841.                 "Device  I/O"   errors  usually means you  have  specified  a 
  2842.                 pathname that cannot be found, or cannot exist. 
  2843.  
  2844.                 "String space corrupt" is a programming error--and if you can 
  2845.                 duplicate it consistently,  please tell me,  as these  errors 
  2846.                 usually  occur a while after the actual bug itself.   So  are 
  2847.                 very difficult to track down. 
  2848.  
  2849.                 "Cannot execute filename"  is an error that appears when  you 
  2850.                 run  a door program in _shell method,  and the program  needs 
  2851.                 more RAM (so run it in _shrink or _full method). 
  2852.  
  2853.                 If  when you restart the BBS and it does not clear the screen 
  2854.                 and  display the copyright when loading the indexes--then  it 
  2855.                 is due to you loading a TSR that uses up too much memory. 
  2856.  
  2857.                 If  the software does not record in the callers log the  data 
  2858.                 from  protocol log files,  or the software does not recognize 
  2859.                 file transfers,  then this is due to you not properly telling 
  2860.                 the software where it can find that protocols log. 
  2861.  
  2862.                 If  the software does not record in the callers log the  data 
  2863.                 from net mail transfers,  or does immediate hanging-up  after 
  2864.                 sending or receiving a packet, then you should make sure that 
  2865.                 the DSZ protocol log pathname (see PATHNAMES) is correct. 
  2866.  
  2867.                 
  2868. PERFORMANCE     Anything you can put into a RAM disk will speed things up.
  2869. ENHANCEMENTS
  2870.                 Doing a weekly packing will also improve overall performance.
  2871.  
  2872.                 A  disk cache might improve performance--has not been tested. 
  2873.                 It might be better to use the memory for a RAM disk.  A  disk 
  2874.                 cache that knows the difference between a RAM disk and a hard 
  2875.                 disk (and only caches the hard disk) would be useful. 
  2876.  
  2877.                 Using  NU's SpeedDisk or some other disk defragmenter  really 
  2878.                 helps--BBS's are a natural fragmenter of  files--I  recommend 
  2879.                 once a week. 
  2880.  
  2881.                 Both the packing and defragmentation can be done as an event. 
  2882.                 For the defragmenter, just set it up as a full-exit door. 
  2883.  
  2884.                 If your BBS computer will only be for the BBS, I recommend 
  2885.                 you put the following into a RAM disk:
  2886.                 
  2887.                 File                  640k          1MB          2+ MB
  2888.                 LINES.$$$              √             √             √
  2889.                 FX.TXT                 √             √             √
  2890.                 CMDS.DAT                             √             √
  2891.                 MENUS.DAT                            √             √
  2892.                 BBS_CMDS.DAT                         √             √
  2893.                 most used .ANS's                     √             √
  2894.                 USERS.IDX                            √             √
  2895.                 FILES.IDX                            √             √
  2896.                 JDRBBS.EXE                                         √
  2897.  
  2898.                 640k, 1MB, and 2+ MB are how much available RAM you have.
  2899.  
  2900.                 MENUS.DAT,  BBS_CMDS.DAT,  and CMDS.DAT are part of the  menu 
  2901.                 system.  You should not put these into RAMDRIVE until you are 
  2902.                 fairly  sure  you do not want to make any  more menu changes.  
  2903.                 Because  McEditor will change these files--and if they are on 
  2904.                 your RAM drive,  then the changes are not copied back to your 
  2905.                 hard drive. 
  2906.  
  2907.                 Putting  the  .IDX's  above in a RAM drive means they will be 
  2908.                 deleted  when you reboot the computer.   This is no  problem, 
  2909.                 since the software will just rebuild them right back up.   So 
  2910.                 it is practical  to keep the .IDX's on a RAM disk--and if you 
  2911.                 keep  auto-name-detect  and auto-filename-detect ON,  then  I 
  2912.                 would  recommend you put USERS.IDX and FILES.IDX on  the  RAM 
  2913.                 disk. 
  2914.  
  2915.                 Remember that files in \RAMDRIVE are automatically updated to 
  2916.                 the  RAM disk whenever you change them.   So there is no need 
  2917.                 for you to copy files to your RAM disk yourself. 
  2918.  
  2919.                 If  you really want to put files that get updated  onto  your 
  2920.                 RAM  disk,   I  would recommend you put a line to copy  these 
  2921.                 files  back to your hard disk in your BBSxxx.BAT  file  after 
  2922.                 JDRBBS.EXE is run. 
  2923.  
  2924.                 In  general,   the  software has been  designed  to  be  very 
  2925.                 flexible.   Allowing you to decide on the best allocation  of 
  2926.                 your resources. 
  2927.  
  2928.                 While  putting  LINES.TXT onto a RAM drive and  defragmenting 
  2929.                 will  speed things up--that is not the main reason to do  so.  
  2930.                 The main goal is to reduce wear and tear on your hard disk by 
  2931.                 doing so. 
  2932.                 
  2933.  
  2934. REGISTERED      Besides  the stuff in ORDER.FRM,  Registering will get you  a 
  2935. PACKAGE         modified/complete version of  JDRBBS.EXE  which  includes the 
  2936.                 things below. 
  2937.                 
  2938.                 The  purpose of the registered package is not to cripple  the 
  2939.                 operations of the BBS,  or penalize the users.   It  provides 
  2940.                 enhancements that a sysop would like.   Since, ultimately, it 
  2941.                 is the sysop who registers this. 
  2942.  
  2943.                 You  are  also  limited to like 2000  active users  and  2900 
  2944.                 active  files.   Whereas the registered package boosts  these 
  2945.                 numbers at least into the 20,000's. 
  2946.                 
  2947. DataBaser       You get the source code for this module.
  2948.  
  2949. Net Mail File   The capability to do netmail file transfers is also  separate 
  2950. Transfers       from the unregistered version.
  2951.  
  2952.                 The registered package includes the necessary module to allow 
  2953.                 you do and handle file requests.   It is required if you want 
  2954.                 to  send  compressed  messages--which results in reducing  by 
  2955.                 half the packet/messages transfer time over the phone lines. 
  2956.  
  2957.                 This feature both saves money and time.
  2958.  
  2959.                 It is also quite nice to set up a file exchange net with your 
  2960.                 fellow  sysops  (just like net mail,  but with  whatever  new 
  2961.                 files are put into a specified area(s)). 
  2962.                 
  2963. Sysops          This  is  a collection of routines  not  included  with  this 
  2964. Package         version.  Most new sysop routines will be going here.   These 
  2965.                 are all sysop enhancements--none for the users. 
  2966.                 
  2967.                 The  following additional menu routines are included with the 
  2968.                 sysop package: 
  2969.                   Alter L&D
  2970.                     --Alter L&D/File Point values globally per area. 
  2971.                   Directory
  2972.                     --Lists  the  contents of any directory in DOS style  two 
  2973.                       column form. 
  2974.                   DL Potential
  2975.                     --Lists  users by security level,  including  information 
  2976.                       about  their  "bytes can download"  and  minute-credits 
  2977.                       availability. 
  2978.                   File Lists Comparer
  2979.                     --Will  compare two lists of file names and  descriptions 
  2980.                       (from other BBS's lists or Master Lists)  and produce a 
  2981.                       third  list of  files that  are common,  different,  or 
  2982.                       unique using the two lists. 
  2983.                   File Spell Checker
  2984.                     --Will  check the spelling of all words in a  text  file, 
  2985.                       putting all not-found words into a file. 
  2986.                   Fix User SL's
  2987.                     --Allows you to change all user security levels from  one 
  2988.                       value to another.  
  2989.                   Global File Area SL changer
  2990.                     --Allows you to change many file area SL limitors at  the 
  2991.                       same time. 
  2992.                   Pack Files
  2993.                     --Does  the  purging  of deleted records  from  the  data 
  2994.                       files.    Put here because a sysop who uses the BBS for 
  2995.                       less than 30  days has no need to pack so soon.  If you 
  2996.                       do not pack your data files, they will continue to grow 
  2997.                       ever larger, and eventually the bloat will slow the BBS 
  2998.                       down noticeably.
  2999.                   Post Upload Processor
  3000.                     --Allows  you  to run files that are on-line through  the 
  3001.                       same  post-upload procedures that uploads  go  through.  
  3002.                       Including comment header and virus checking stuff. 
  3003.                   Print Out Messages
  3004.                     --Print out all the messages in a message area to a file.  
  3005.                       Includes deleted messages.
  3006.                   Strip ANSI & Avatar
  3007.                     --Will selectively strip ANSI and Avatar codes out of any 
  3008.                       file. 
  3009.                   Vote Summary
  3010.                     --Summarizes the voting results in tabular form. 
  3011.  
  3012.                 The following capabilities are turned ON with the  registered 
  3013.                 package: 
  3014.                   Add Comments
  3015.                     --To  automatically  insert your BBS's comments into  the 
  3016.                       header of ZIP or ARJ uploads.
  3017.                   Extract Comments
  3018.                     --To  automatically  extract ZIP header comments  out  of 
  3019.                       uploads  and save them to a text file (so you,   and/or 
  3020.                       your  users,  can know more about the BBS's from  which 
  3021.                       the files came). 
  3022.                   Import .DIZ descriptions
  3023.                     --To automatically insert a .DIZ description file from an 
  3024.                       upload and place it into your file reviews.
  3025.  
  3026. NEXT            MENUCMDS should be your next stop.
  3027.  
  3028.